- PR -

iterateを使用したradioボタンの値の取得

1
投稿者投稿内容
行徳のブロンソン
会議室デビュー日: 2007/05/22
投稿数: 2
投稿日時: 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/02
投稿数: 189
お住まい・勤務地: 最北の地
投稿日時: 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/22
投稿数: 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/02/01
投稿数: 15
投稿日時: 2007-05-25 09:33
解決されたようですね。

実際に試していないのでわかりませんが、
radioボタンにはindexed属性なるものがあります。
radioボタンへの値の受け渡しをどのようにやっているのかが
いまいち掴めないのですが、今後機会がありましたら、ご一考を。
朝日奈ありす
大ベテラン
会議室デビュー日: 2007/05/02
投稿数: 189
お住まい・勤務地: 最北の地
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)