- - PR -
iterateを使用したradioボタンの値の取得
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-05-22 22:02
strutsを使用したjsp内でhtml:radioを使用した値の取得が出来なくて困っています。
やりたい事は、ScriptLetは使わずにDBより取得した情報をList化してiterateで表示させradioボタンで選択し、submitするとチェックしたボタンの値を受け渡すという事です。 DBより取得した情報のList化及びiterateでの表示はできるのですが、それにradioボタンを咬ませることができないでいます。 現在のソースは以下の様になっています。 <logic:iterate name="strData" id="strData"> <html:radio property="title" value="val"></html:radio> <bean:write name="strData"></bean:write> </logic:iterate> <html:radio>のvalue="val"を配列として扱いたいのですが全て同じvalとなってしまいます。 ScriptLetを使用して、<%="val[" + id + "]"%>の様にする事は可能なのですが、ScriptLetを使用しないで同じようにvalの値を取得する良い方法は無いでしょうか? |
|
投稿日時: 2007-05-22 23:48
http://www.jajakarta.org/struts/struts1.0/ja/target/documentation/struts-html.html
こういのう探してよみましたか? --------------------------------------------------------------------------------- 現在のソースは以下の様になっています。 <logic:iterate name="strData" id="strData"> <html:radio property="title" value="val"></html:radio> <bean:write name="strData"></bean:write> </logic:iterate> <html:radio>のvalue="val"を配列として扱いたいのですが全て同じvalとなってしまいます。 --------------------------------------------------------------------------------- すべて同じvalになってしまうってそういうつくりになってるので当たり前です。 配列からvalue値ラジオボタンができませんので。 1. struts-htmlを拡張して新しいタグを作るか 2.スクリプトレッドをあきらめて使うかですね |
|
投稿日時: 2007-05-24 20:33
杏さま返答ありがとうございます。
自分なりに解決してみましたので、報告致します。 配列として扱っていないので、この件の主旨とは離れてしまったのですが、valにList化したDBのPkeyをsetして変数として扱いました。 以下ソースです。 <html:form action="/change"> <logic:iterate id="listData" name="ret"> <html:radio idName="listData" property="No" value="val"/> <bean:write name="listData" proprty="title"/> </logic:iterate></html:form> 新たにActionFormを継承したListFormを作成しDBのデータのGetter及びSetterを生成し、struts-configの<action-mappings>でListFormを/changeに当てはめました。 val=DBのPkeyとなったので、それを利用して値を受け渡そうと思っています。(スマートなやり方ではないですが・・;) 勉強不足ですが、精進致します。 |
|
投稿日時: 2007-05-25 09:33
解決されたようですね。
実際に試していないのでわかりませんが、 radioボタンにはindexed属性なるものがあります。 radioボタンへの値の受け渡しをどのようにやっているのかが いまいち掴めないのですが、今後機会がありましたら、ご一考を。 |
|
投稿日時: 2007-05-25 20:09
<html:text property="text" indexed="true"/>
<html:text property="text" indexed="true"/> <html:text property="text" indexed="true"/> <html:text property="text" indexed="true"/> とすると。 <input type="text[0]"/> <input type="text[1]"/> <input type="text[2]"/> <input type="text[3]"/> のようになる String[] text;とActionForm内部で定義する。 strutsのControllerで request.getParameters("text")などを行っているのです。 |
1