[Seasar-user:2822] [S2JSF] m:immediate の動作について
松山 大樹
t.matsuyama
2005年 11月 14日 (月) 16:48:18 JST
松山です。
Seasar2.3 早速、開発中のシステムに取り入れて使ってます。
便利です。楽です。
で、S2JSF の m:immediate についての質問です。
Seasar2.3 + S2JSF1.0.9 です。
上半分がリンクの一覧表、下半分がメンテナンス部分になっている画面があります。
初期状態は、追加モードになっていて、メンテナンス部に新規情報を入力するように
なっています。
上半分のリンクのいずれかをクリックすると、クリックしたリンクに該当する
情報が、メンテナンス部に表示され、編集モードとなります。
-----------------------------------------------------------------------------
上半分
<span m:inject="s:forEach" m:items="#{maintenanceProject.projectList}" m:var="project">
<a m:action="#{maintenanceProject.select}" >
<span m:value="#{project.projectName}" />
<span m:inject="f:param" m:name="selectedProjectID" m:value="#{project.projectID}" />
</a>
</span>
下半分
<input type="text" id="projectName" m:value="#{projectForm.projectName}" m:required="true" />
<input type="submit" value="実行" m:action="#{xxxxxxxx.execute}" />
-----------------------------------------------------------------------------
このとき、メンテナンス部の項目は、m:required="true" となっているので、実行ボタンを
押したときに、必須チェックがかかります。
このままだと、上半分のリンクをクリックしたときにも、バリデーションが実行されてしまい、
値を入力しないと遷移しないので、リンクに m:immediate を追加しました。
<a m:action="#{maintenanceProject.select}" >
↓
<a m:action="#{maintenanceProject.select}" m:immediate="true">
すると、どういうわけか、下半分の<input type="text"> の、value に値がセットされ
なくなってしまいました。
projectForm.projectName に値がセットされていないのかと、<input>タグの直前に、
<span m:value="#{projectForm.projectName}" /> を追加してやると、そちらには
表示されます。
また、m:required="true" の項目に、適当な値を入れてから、リンクをクリックすると、
値は正常に表示されます。
ちょっと困ってしまったので、回避方法など教えていただけると、非常に助かります。
--
::: 株式会社ワウワウ・コミュニケーションズ http://www.wowcom.co.jp/
::: ITシステム・インテグレートDiv.
::: Web・マーケティング&コマンドセンターUnit.
::: 松山 大樹 - [E-MAIL ADDRESS DELETED]
Seasar-user メーリングリストの案内