• 締切済み

struts で bean:parameter の指定方法でつまづいています

いつもお世話になっております。 DBから取得したデータをiterateを使用してボタン表示を行い、ボタンを押されたときのデータを取得しようとしているのですが、 なんともうまくいきません。 1つ前のjavaで、 request.setAttribute("category",cmArray); として定義してあります。 cmArrayはmodelをArrayListに入れたものです。 実際のソースは <logic:iterate id="hyouji" name="category" scope="request"> <html:submit property="submit"><bean:write name="hyouji" property="category_name" /></html:submit> <bean:write name='hyouji' property='category' /> <--デバック用で期待した値がでます。 <bean:write name='hyouji' property='category_sub' /> <--デバック用で期待した値がでます。 <bean:parameter id="strCategory" name="hyouji.category" value="no-name" /> <bean:parameter id="strCategory_sub" name="category_sub" value="no-name2" /> <% System.out.println(strCategory); System.out.println(strCategory_sub); %> </logic:iterate> bean:parameterのnameの所を色々変えて試しているのですが、printlnの所ではvalueに指定した文字が 出てしまう状態です。 タグライブラリを使用せずに、スクリプトレットを使用すれば出来るようになった(OKWaveで解決)のですが、 できればタグライブラリで出来たらと思います。 どなたか分かる方がいましたら、ご教授下さい。

  • tmkz7
  • お礼率38% (5/13)
  • Java
  • 回答数1
  • ありがとう数0

みんなの回答

noname#45950
noname#45950
回答No.1

<bean: parameter>タグ はpageスコープなのに、iterateのスコープがrequestになっているから・・・かな?

参考URL:
http://www.stackasterisk.jp/tech/java/strutsSec03_03.jsp#9

関連するQ&A

  • java struts で フォームビーンに入っているarrayDB配

    java struts で フォームビーンに入っているarrayDB配列の情報をリストボックスで表示するにはどのようにすればいいのでしょうか? <logic:iterate id="idToname" name="ENTRY" property="arrayDB" > <bean:write name='idToname' property='cmName'/> <option value="<bean:write name='idToname' property='cmbName' />"></option> </logic:iterate> で実行すると文字列が可変長で画面に出てきただけでリストボックスでは表示されませんでした。 リスト内容は可変です。 どうやって配列の内容をリストボックスで表示させればいいのでしょうか? ネットでかなり検索をしましたが、可変の配列をリストボックスで表示する方法はありませんでした。

    • ベストアンサー
    • Java
  • Java struts プルダウン

    JAVAでプルダウンを作成しています。 しかしプルダウンの値を設定し、submitを掛けると全ての行のプルダウンの値が同じになってしまいます。 100円 200円 でsubmitを掛けると 200円 200円 になってしまう。 <logic:iterate id="element" name="ActionForm" property="GridList" indexId="idx"> <html:select name="ActionForm" property="selectData" style="margin-left:10px;"> <html:optionsCollection name="element" property="DropDownList" label="label" value="value" /> </html:select> </logic:iterate> selectDataはStringの配列です。 DropDownListにはlabelとvalueのプロパティを持ったBeanを格納しています。 selectDataには「100-150-1日」というハイフン区切りのデータが格納されます。 どこが問題かわかりませんでしょうか。

    • ベストアンサー
    • Java
  • struts の iterateでのテーブル表示

    Map型のデータを、iterateを使って表(テーブル)表示を行っているものです。 Map型のデータには、23個のデータが入っています。 このデータを5×5の表に順番に入れて表示させたいのです。現在は1行に同じデータが5つ表示されています。 5×5の表にする方法がいまいちわかりません。 知っている方、宜しくお願いします。 今書いているソースの一部です。 <table border="1"> <logic:iterate id="data" indexId="ctr" name="list"> <tr> <td><bean:write name="data" property="name" /></td> td><bean:write name="data" property="name" /></td> td><bean:write name="data" property="name" /></td> td><bean:write name="data" property="name" /></td> td><bean:write name="data" property="name" /></td> </tr> </logic:iterate> </table>

  • checkboxのvalue値を動的にしたい

    strutsタグのcheckboxのvalue値を動的に変更したいのですがうまく出来ません。 iterateでループし、チェックボックスが複数個(状況によって個数が変化する)できます。 このときvalue値を動的にして、submitしたときにどこのチェックボックスがチェックされたかを知りたい為に動的にしたいと考えています。 見当違いなやり方かもしれません。 どうぞ、ご教授下さい。宜しくお願いいたします <nest:iterate id="selectdata" name="selectAll" indexId="idx"> <tr> <td> <html:checkbox name="selectdata" property="checkBox" value=" ここの値を動的にしたい " /> </td> <td> <bean:write name="selectdata" property="user_id" /> </td> </tr> </nest:iterate> できればbean:writeのuser_idを入れることが出来るのならそれが一番良いのですが・・・ strutsタグのネストは出来ないのでしょうか?

    • ベストアンサー
    • Java
  • struts bean:defineについて

    現在struts + weblogicでwebアプリの開発を行っています。 行いことは以下のようになっています。 <table> <html:form action"/hoge"> <logic:iterate id="lst" name="hoge" indexId="idx"> <bean:define id="listIndex" name="idx"/> <tr name='<bean:write name="idx"/>'> <td> <html:select name="lst" property="timeH" onclick="document.hogeForm.hdn.value='<%=listIndex%>'> <html:options property="timeHList"/> </html:select>    ・・・中略・・・ <input type="hidden" name="hdn"> </html:form> ここで問題になっているのが、onclickイベントでhiddenに値を入れようと思っているのですが、<%=listIndex%>がそのまま文字列になって返ってきます。 シングルコーテーションを外したらスクリプトエラー、 ダブルコーテーションで書いたら<html:select>のタグが閉じてないといわれ、エラーで落ちます。 どのように値を格納すれば正しくhdnに値を格納できるのでしょうか? struts 1.1 Weblogic 8.1 SP1 Windows2000にて開発 以上、宜しくお願い致します。

    • ベストアンサー
    • Java
  • Strutsのindexedについてです

    <html:form action="syuu.do" method="post"> <logic:notEmpty name="page3form" property="csvkaku"> <logic:iterate id="kadai9ken" name="page3form" property="csvkaku"> <html:submit property="dispatch1" indexed="true" >修正</html:submit><br><html:submit property="dispatch2" indexed="true">削除</html:submit> </logic:iterate> </logic:notEmpty> このソースで削除ボタンを押すと削除処理Beanに値を保持遷移し(sakujo.java) 修正ボタンを押すと修正画面に値をBeanに保持し遷移する(senni.jsp) に各遷移していくシステムなのですが なぜか、画面表示時に修正ボタン削除ボタンどちらを押しても削除処理をしてしまうのです peropertyは、コンフィグのほうのparameterでしっかり遷移先は書いてあります。 どうしてでしょうか?

  • <logic:iterate>のデータ表示に関して

    <logic:iterate>を使ってデータの表示を行っています。 データは2つあり、1つは、コードで、もう1つは名称です。 その2つのデータをselectのoptionとして表示したいのですが、 下記ソースにするとoptionのvalueの値がうまく入ってくれず、文字列(<bean:write~)になってしまいます。 うまくデータをいれるにはどうすればよいのでしょうか?? <html:select property="name"> <logic:iterate id="list" name="nameList"> <html:option value="<bean:write name='list' property='code' />"><bean:write name="list" property="name" /></html:option> </logic:iterate> </html:select>

  • iterateで受け取った値を処理に使いたい

    こんにちは、honiyonです。  まだ知識が浅い為、おかしな言い回しがあるかも知れませんがご容赦くださいm(_ _)m  Servlet側で作成したデータをJSP側で <logic:iterate id="LOOP" name="LOOP_LIST" indexId="index"> <bean:write name="LOOP" property="data1"/> <bean:write name="LOOP" property="data2"/> </logic:iterate>  のようにして表示する方法はわかりました。  今度は、これを表示するのではなくて処理に使いたいのですが、その方法がわからず難儀しています。  こんな書き方は出来ないのですが、こういう事がやりたいと思っています。 <logic:iterate id="LOOP" name="LOOP_LIST" indexId="index"> <!---こっちは普通に表示---> <bean:write name="LOOP" property="data1"/> <!---data2は処理に使う---> <%  ↓↓ここの書き方がわからない↓↓ String CODE= "<bean:write name="LOOP" property="data2"/>" if (CODE == "1") { out.println("牛"); } else { out.println("馬"); } %> </logic:iterate>  よろしくお願いします(..

    • ベストアンサー
    • Java
  • Struts 1 で、複数件のフィールドを更新する方法を教えてください。

    <head> <title>登録画面</title> </head> <body> <html:form action="/RegisterData"> ヘッダ:<html:text property="strHeader" /><br> <table border="0"> <logic:iterate id="objRecord" name="BIKO_FORM" property="objBikoList" indexId="intIndex"> <tr> <td>項目<%=(intIndex+1)%></td> <td><html:text name="objRecord" property="strBiko" indexed="true"/></td> </tr> </logic:iterate> <tr> <td colspan="2"><html:submit value="記録する" /></td> </tr> </table> </html:form> </body> このような JSP で、html:text に入力された値を再表示するプログラムを作ろうとしています。 表示は、 <head> <title>登録成功画面</title> </head> <body> <bean:write name="BIKO_FORM" property="strHeader" /> <table border="0"> <logic:iterate id="objRecord" name="BIKO_FORM" property="objBikoList" indexId="intIndex"> <tr> <td>項目<%=(intIndex+1)%>:<bean:write name="objRecord" property="strBiko" /></td> </tr> </logic:iterate> </table> </body> このような感じです。 ActionForm のプロパティは、 private String strHeader; private List<BikoFormDetail> objBikoList; です。 特にセッションに再登録したり、値を変更したりはしないのですが、うまく動作しないのです。iterater で表示した、html:text への画面からの入力値を参照することは、無理なのでしょうか?

    • ベストアンサー
    • Java
  • struts iterateタグ内のデータ取得方法

    DynaActionFormと、iterateタグを用いて、 複数レコードのデータをTEXTフィールドに設定しています(下記参照)。 入力画面(input.jsp)の次に実行されるActionクラスで、 Textフィールドに表示した配列の項目(sckForm[0].sck_no)の値を取得したいのですが、 記述方法がわからず困っています。 どなたかご存知の方がいらっしゃいましたら、教えてください。 (ソース) ■struts-config.xml <form-beans> <form-bean name="sckForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="sck_no" type="java.lang.String" /> <form-property name="sck_nm" type="java.lang.String" /> </form-bean> ■入力画面(input.jsp) <html:form action="/sck_result.do"> <logic:iterate id="sckForm" name="sck.search" scope="application" indexId="index"> <html:text name="sckForm" property="sck_no" indexed="true"/> <html:text name="sckForm" property="sck_nm" indexed="true"/> </logic:iterate> <html:submit property="submit" value="CSV出力" ></html:submit> </html:form> 実際のHTMLは、下記のように変換されています。 <form name="sckForm" method="post" action="/sample/sck/sck_result.do"> <input type="text" name="sckForm[0].sck_no" value="2005-01-002"> <input type="text" name="sckForm[0].sck_nm" value="A"> <input type="text" name="sckForm[1].sck_no" value="2005-01-003"> <input type="text" name="sckForm[1].sck_nm" value="B"> <input type="submit" name="submit" value="CSV出力"> </form>

専門家に質問してみよう