[Seasar-user:6379] Re: [S2JSF]複数行一括入力、更新プログラムでDTOが入力内容で更新されない件

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2007年 2月 27日 (火) 16:47:03 JST


米林です。

From: "Shun Saito" <[E-MAIL ADDRESS DELETED]>
Sent: Tuesday, February 27, 2007 4:27 PM

> 斎藤@サイエンティアです。
>
> S2JSFで以下のようなプログラムを作成しようと考えています。
>
> ・forEachを使って複数件のデータを表示する
> ・表示されたデータに直接入力を行って複数件のデータを一括更新する
> ・JavaScriptで入力チェックを行うため、入力フィールドのname属性を
>  任意の名称に指定する

確認させて下さい。
バリデーションをサーバ側で行うのは業務上NGなのでしょうか?

> この場合、入力フィールドにm:passthrough="true"を指定する
> 必要がありますが、そうすると入力内容がDTOに反映されない(入力前
> の値が保持されている)という現象が発生しました。
> この点について確認させてください。
>
> ・このような動作はS2JSFまたはJSFの仕様によるものでしょうか?

m:passthroghはS2JSF独自のものですのでJSFの仕様ではありません。
m:passthroghを指定した場合には上記のような動きになります。

> また、上記現象が仕様によるものである場合、name属性の調整等で
> 対応しようと考えていますが、
>
> ・入力フィールドのname属性をある規則によって命名しておけばDTO
>  との連携ができるようになるものでしょうか?

forEachにidをつければ、JavaScriptから操作する事も可能だと思います。
HTMLを表示してソースの表示でどのような名前がついているか
確認してみてください。
具体的には、forEach内に<input type="text" id="foo"があった場合
以下のような名前がつきます。

formのid + ":" + forEachのid + "_" + forEachのインデックス + ":foo"




Seasar-user メーリングリストの案内