4月 7th, 2008at 12:06
Tags: Apache
Digester1.8のルール応用
既存のDigesterのルールを使って、いろんな例の実現性を検討してみる。
繰り返し要素の対応
繰り返し要素を使いたい場合、ちょっと工夫しなければできなかった。
<user id="user0001"> <name>藤原</name> <age>20</age> <telList> <tel>111-1111-1111</tel> <tel>222-2222-2222</tel> </telList> </user>
ルールとしては
- userタグがきたらUserVOを作成
- name、ageがきたらUserVOに設定
- telListがきたら、ArrayListを作成してUserVOに設定
- telがきたら、ArrayListにadd
これを実現するには以下のようにルールを記述する
//例1 <pattern value="items/user/telList"> <object-create-rule classname="java.util.ArrayList" /> <set-next-rule methodname="setTelList" /> </pattern> <!-- トップオブジェクトであるArrayListのaddメソッドを呼び出す 引数はtel要素の値 --> <pattern value="items/user/telList/tel"> <call-method-rule methodname="add" paramcount="1" /> <call-param-rule paramnumber="0" /> </pattern>
//例2 <pattern value="items/user/telList"> <object-create-rule classname="java.util.ArrayList" /> <set-next-rule methodname="setTelList" /> <pattern value="tel"> <call-method-rule methodname="add" paramcount="1" /> <call-param-rule paramnumber="0" /> </pattern> </pattern>




