• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:struts ActionFormについて)

ActionFormをMapに変換する方法とは?

このQ&Aのポイント
  • ActionFormをMapに変換する方法について教えてください。
  • リダイレクトした際にActionFormに格納されている値を保持する方法はありますか?
  • ActionFormの値を簡単にループで設定することはできますか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#147388
noname#147388
回答No.1

formの参照範囲をrequestからsessionですむだけだべ

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【Struts】html:linkについて

    「html:link」でActionFormに値を格納するというような、 「html:form」的な動きはできるでしょうか。 「html:link action="/hoge?id=xxx&param=<% ooo %>&..."」 今は上記のような形で、値を固定したり変数に入れたりして requestで次画面へ値を飛ばすようにしていますが、 「html:text」など値が動的になってくると「?」では 厳しくなります。 動的な値を次画面へ飛ばせればどんな方法でも良いのですが、 できればformに格納したいのでなにか方法はないでしょうか? やはりJavaScriptでsubmitさせる感じになってしまうのでしょうか?

    • ベストアンサー
    • HTML
  • 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での質問

    Strutsでの質問 いつもお世話になっております。 <html:optionsCollection>使った際の実装のさせ方がわからない為、困っております。 birthday.jsp //省略 生年月日 <html:select property="year" > <html:optionsCollection name="UserCheckForm" property="year_map" value="key" label="value" /> </html:select>年 <html:select property="month" > <html:optionsCollection name="UserCheckForm" property="month_map" value="key" label="value" /> </html:select>月 <html:select property="days" > <html:optionsCollection name="UserCheckForm" property="days_map" value="key" label="value" /> </html:select>日<br/><br/> ActionForm、Actionではどのように定義しておけばいいのでしょうか? ActionFormでは //省略 LinkedHashMap<String, String> year_map = new LinkedHashMap<String, String>(); year_map.put("01", "1970"); year_map.put("02", "1971"); year_map.put("03", "1972"); year_map.put("04", "1973"); year_map.put("05", "1974"); year_map.put("06", "1975"); year_map.put("07", "1976"); year_map.put("08", "1977"); LinkedHashMap<String, String> month_map = new LinkedHashMap<String, String>(); month_map.put("01", "01"); month_map.put("02", "02"); month_map.put("03", "03"); LinkedHashMap<String, String> days_map = new LinkedHashMap<String, String>(); days_map.put("01", "01"); days_map.put("02", "02"); days_map.put("03", "03"); でもこれっておかしいですよね・・・。 ActionFormにはsetterとgetterを実装しなければいけないのに。 setterはこんな感じになるんでしょうか。 public void setYear_map(){ year_map.put("key","value"); } でもこれだと動的にキー名と値が入らず、1個分しか出来ないですよね…。 どうしたらいいかわからないのでどなたか教えて頂ければ幸いです。 また結構なサイトみてますが、イマイチわかりません。 参考URLをご提示の場合はどのへんを参考にすればいいか 教えて頂ければと思います。 申し訳ありませんが、宜しくお願い致します。

    • ベストアンサー
    • Java
  • htaccessで同一サーバ内リダイレクト処理

    LAMP環境にてウェブページの作成を行っております。 htaccessは使用できる環境になっておりまして、こちらを使用してリダイレクト処理を行いたいと思っております。以下のようなリダイレクトです。 http://www.hoge.jp/fuga ↓ http://www.hoge.jp/redirect/index.html このような形のリダイレクトを行うため、以下のような記述をhtaccessに記述しました。 Redirect temp http://www.hoge.jp/fuga/ http://www.hoge.jp/redirect/index.html すると、リダイレクト先のURLが http://www.hoge.jp/redirect/redirect/redirect/・・・/index.html ridirectがループしてしまい、正しいURLにリダイレクトすることができません。 リダイレクトを解消するためのhtaccessの設定方法など分かりましたら、 ご教授いただけますでしょうか。 よろしくお願い致します。

  • struts2のiteratorについて

    sturuts2の画面表示値の取得について教えてください。 Action側でmap<String,List>で保持している変数を 画面上に表示することはできたのですが、 textfieldやラジオボタン、チェックボタンなどで入力された値を Action側で取得したい場合、どのような形でコーディングすれば取得できます? 例)以下の例ではAction側で取得できませんでした。。。 <s:iterator value="hogeMap" status="map"> <s:iterator value="hogeList" status="list"> <s:textfield name=hogeMap[key].hogeList[%(#list.index)].hogehoge value=""> </s:iterator> </s:iterator>

  • strutsのstruts-config.xmlでのエラーメッセージ

    こんばんは strutsのエラーメッセージ表示で困っています。 javaでthrowしてstruts-config.xmlのexceptionで エラーを表示します。 以下のようにコーディングしてあり、 key999に定義してあるメッセージを表示することはできます。 しかしmessagesにセットしたメッセージを表示することができません。 messagesにセットしたメッセージを表示するにはstruts-config.xmlの keyはどのように設定すればよいのでしょうか? よろしくお願いします。 *struts-config.xml <exception key="999" type="myException" path="xxxxxxxxxx.jsp" handler="myExceptionHandler"/> *java public ActionForward hoge( ActionMapping map, ActionForm form, HttpServletRequest req, HttpServletResponse res ) throws Exception { try { return map.findForward("XXXXX"); } catch (myException e) { ActionMessages messages = new ActionMessages(); messages.add("error" ,new ActionMessage("001","エラー")); saveMessages(req,messages); throw e; } }

  • struts:input type="text"とhtml:textの違いは?

    はじめまして。 strutsのhtmlタグで質問があります。 Formの中にvalidateを実装しました。 画面にエラーメッセージを表示するまではうまくいきましたが、 遷移前に入力した値を保持し再度表示してくれません。 原因を調べてみると、 <input type="text" name="hoge"> ではなく、 <html:text property="hoge"/> ならば値を保持してくれることがわかりました。 ここで質問なのですが、 (1)strutsでは、値の保持のため<html:text~>を使うのが妥当なのか? (2)strutsで<input type="text"~>を使用する場合、どういう実装をすれば値をjspに渡せるのか? (sessionに格納するのはなんとなくわかります。ですが、strutsの場合、ActionとFormだけで動作しますし、通常のsetAttribute("hoge","value");をどこで入れるのが適切なのかわかりませんでした。 初心者な問題で申し訳ありませんが、strutsをより理解したいため、お分かりになる方教えていただけないでしょうか?よろしくお願いします。

  • HTMLフォームから変数に格納した値をずっと保持したい

    hogo_1.html の <INPUT type="text" name="name" size="30"> のところで、$in{'name'}に入った値を、$hogenameに格納しました。 hogo_1.htmlは、スキンで、処理によって、hogo_2.htmlのスキンに切り替わるところがありますが、切り替わった際に、$in{'name'}の値はもとより、$hogenameに格納していたまで、NULLになってしまいます。 $hogenameに格納した値を、ずっと保持させておきたいのですが、クッキーを使わないと無理でしょうか? クッキーを使わないでも、ずっと保持させておく方法がありましたら、教えて下さい。

    • ベストアンサー
    • Perl
  • @×× = $q->param('**'); の書き出しについて

    このようなチェックボックスを作って <INPUT type="checkbox" name="q1" value="A">A<br> <INPUT type="checkbox" name="q1" value="B">B<br> <INPUT type="checkbox" name="q1" value="C">C<br> このようなPerlの記述をして use CGI; $q = new CGI; @q1 = $q->param('q1'); このようなCGIの値の書き出し部分はどうしたらいいですか? print "<td width=300><font size=2>●●{'q2'}</font>&nbsp;</td>\n"; 上記の @q1 = $q->param('q1'); に、チェックされた値が格納されているんですよね。 その値を表示させたいと思っています。 いろいろ教えてもらって、ここまでたどり着きました。

    • ベストアンサー
    • Perl
  • セレクトボックスに"value"と"word"を付け加えたい。

    初めての投稿をさせてもらいます。JavaScript初心者な者で解る方がいらっしゃればご教授のほど宜しくお願いします。 質問させてもらいたい事はこちらのソースに"value"と"word"を付け加えることは出来ますでしょうか? 外部ファイルには /** * 選択肢クラス * @param parentValue 親の値(null:いつでも表示) * @param text 表示テキスト * @param value 値 * @param style CSS(省略可) */ function SelectOption(parentValue, text, value, style) { this.parentValue = parentValue; this.setOption = function() { this.text = text; this.value = value; if(style) { this.style.cssText = style; } }; return this; } /** * セレクトボックスクラス * @param id セレクトボックスID */ function SelectBox(id) { /** * IDに対応オブジェクトを取得 * @return オブジェクトorNULL */ function getObject() { var obj = document.getElementById(id); if(!obj.options && ( (typeof obj.length) == "number") ) { if(obj.length > 0) { obj = obj[0]; } else { obj = null; } } return obj; } // オプションのリスト var options = []; /** * オプション登録 * @param condition 表示条件 */ this.registOption = function(option) { options[options.length] = option; }; // 子のオブジェクト var child = null; /** * 子のオブジェクトを設定する * @param childObj 子のオブジェクト */ this.setChild = function(childObj) { child = childObj; }; /** * オプション反映 * @param parentValue 親の値(null:全部表示) * ※比較に==を使っているのでundefinedもnullと等しく扱われる。 */ this.make = function(parentValue) { var obj = getObject(); if(obj) { // 選択肢削除 obj.options.length = 0; // 表示すべき選択肢抽出 var opt = (parentValue != null) ? [] : options; if(parentValue != null) { for(var i = 0; i < options.length; i++) { if( (options[i].parentValue == null) || (options[i].parentValue == parentValue) ) { opt[opt.length] = options[i]; } } } // 選択肢反映 obj.options.length = opt.length; for(var i = 0; i < opt.length; i++) { opt[i].setOption.call(obj.options[i]); } // 子のオブジェクトにも連鎖反映 if(child) { child.make(obj.value); } } }; return this; } HTMLファイルには <html> <head> <title>セレクトボックス親子関係</title> <script type="text/javascript" src="Select.js" charset="Shift_JIS"></script> <script type="text/javascript"><!-- var box1 = new SelectBox("sb1"); box1.registOption(new SelectOption(null, "都道府県", "0", "color:gray;")); box1.registOption(new SelectOption(null, "東京都" , "1")); box1.registOption(new SelectOption(null, "神奈川県", "2")); var box2 = new SelectBox("sb2"); box2.registOption(new SelectOption(null, "区市町村", "0", "color:gray;")); box2.registOption(new SelectOption("1" , "千代田区", "1")); box2.registOption(new SelectOption("1" , "中央区" , "2")); box2.registOption(new SelectOption("2" , "横浜市" , "3")); box2.registOption(new SelectOption("2" , "川崎市" , "4")); var box3 = new SelectBox("sb3"); box3.registOption(new SelectOption(null, "詳細" , "0", "color:gray;")); box3.registOption(new SelectOption("1" , "一番町" , "1")); box3.registOption(new SelectOption("3" , "みなとみらい", "2")); box1.setChild(box2); box2.setChild(box3); window.onload = function() { box1.make(null); }; //--></script> </head> <body> <form> <select id="sb1" onchange="box2.make(this.value);"></select> <select id="sb2" onchange="box3.make(this.value);"></select> <select id="sb3"></select> </form> </body> </html> となっております。