• 締切済み

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でしっかり遷移先は書いてあります。 どうしてでしょうか?

  • Java
  • 回答数1
  • ありがとう数0

みんなの回答

  • teketon
  • ベストアンサー率65% (141/215)
回答No.1

submit要素にvalue属性が必要なのでは?

関連するQ&A

  • Strutsの質問

    今回質問させて頂きたいのは、iterateを使用してたくさんcheckboxを作成し、そのchexboxにチェックされているものをフォームにあるボタンを押した時に、アクション側でそのチェックされている情報を取得したいことです。 現在私が作成しているコードは以下の通りです。 <logic:iterate property="InfoList" IndexId="index" type="jp.co.checkInfo"> <html:checkbox property="targetFlg" indexed="true" value="true" /> </logic/iterate> infoListはチェックボックスのプロパティ(targetFlg)をもつArrayList型(本当は他の情報ももっていてフォームでそれを使用するのですが、今は省略しています)で、typeはプロパティの場所を示しています。 このコードはmultiboxを使用する方法ではうまくいったのですが、checkboxのやり方がうまくいかないのです。 このコードにおいて特にiterate中の「IndexId="index"」やcheckboxの「indexed="true" value="true"」はこだわりはありませんが、他のものは使用して実行させたいのです。 ちなみに現状で実行すると、チェックされている個所がnullpointerでエラー(java.lang.NullPointerException: No indexed value for InfoList[選択している個所])として報告されます。 質問の内容がわかりにくいかもしれません。 その時はご指摘ください。 では、回答よろしくお願いします。

  • 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>

  • strutsプログラミングでJAVASCRIPTの設定

    Strutsプログラムで、JSPに下記コーディング(抜粋)をして実行すると、 HTTPステータス 500 - javax.servlet.ServletException: Cannot retrieve mapping for action /# というエラーが表示されます。 この原因と、解決策を教えて頂けないでしょうか? 目的は、 「JAVASCRIPTを使って、1つのformに複数のボタンをつくり、それぞれ異なるactionを実行させたい」 わけです。 エラーメッセージから、主な原因はaction="#"にしていることだと思うのですが、どう変えればいいかが分かりません。 <script language="JavaScript">  function jump_1(){   document.MainForm.action="pages/StrutsSample_1.do";   document.MainForm.submit();  }  function jump_2(){   document.MainForm.action="StrutsSample_2.do";   document.MainForm.submit();  } </Script> <html:form method="post" action="#" >  <html:button property="MainForm" value="追加" onclick="jump_1()" />  <html:button property="MainForm" value="修正" onclick="jump_2()" />  <html:radio property="checked" value="1" />  <logic:iterate id="itm" name="key">   <bean:write name="itm" />  </logic:iterate><br> </html:form>

    • ベストアンサー
    • Java
  • Struts、Iterateタグの使い方

    StrutsのIterateタグを使おうとしているのですが、 jsp.error.unterminated.tagというエラーが出てしまい ます。Iterateタグの使い方に問題があると思うのです が、どのように対処すれば良いのかが分かりません。ご 存知の方、教えて頂けませんでしょうか。お願いしま す。 <%@ page language="java" import="java.util.Collection, aloha.business.UserBO" %> <%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> <%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> <jsp:include page="header.jsp" flush="true" /> <% UserBO UserBO = new UserBO(); Collection col = userBO.findAllUser(); %> <table><tr> <logic:iterate id="user", name="col", length="5"> </logic:iterate>

    • ベストアンサー
    • Java
  • Strutsのデータ受け渡しについて

    画面遷移時のデータの引継ぎについて。 画面A→画面B とデータを引き継ぎたい状態です。 画面AにはDBから取得した値を一覧表示しています。 --Action-- TestLogic testLogic = new TestLogic (); ArrayList<datas> list = testLogic.getDatas(); request.setAttribute("sendMail", list); 補足:ArrayList<datas> listにはdatas.classが格納されています。 datasクラスはDB項目に合致したgetterとsetterをもった値保持用のクラスです。 --JSP-- <nest:iterate id="sendData" name="sendMail" indexId="idx"> <html:checkbox name="sendData" property="checkBox" indexed="true"/> <bean:write name="sendData" property="user_id" /> <html:hidden name="sendData" property="user_id" indexed="true"/> </nest:iterate> の様になっています。 一覧表示されたデータ内のチェックボックスをチェックしたものだけを次画面で取得したいと考えていますが、次画面のACTIONにて request.getAttribute("sendMail"); を行ってもNullが返ってきてしまいます。 Enumerationを使うことも考えたんですが、全てのHidden項目が返ってきてしまうのでデータの判別が出来ません。特に明細が複数行あるときには困難です。 こういったデータの引継ぎはどのように行えばよいのでしょうか? どうぞご教授下さいますよう、お願い申し上げます。

    • ベストアンサー
    • Java
  • strutsでlist型の入力を行うには

    strutsでlist型の入力を行いたいのですが、サーバー側で上手く取得できません。 実際には struts-configに <form-bean name="TestForm" type="base.BaseActionForm"> <form-property name="testList" type="java.util.List" /> </form-bean> JSPには <logic:iterate id="testList" type="bean.TestBean" name="TestForm" property="testList" indexId="idx"> <tr> <td> <html:text property="strKamoku" name="testList"/> </td> </tr> </logic:iterate> beanは下記のようです。 public class TestBean implements Serializable, Cloneable { private String strKamoku; public String getStrKamoku() { return strKamoku; } public void setStrKamoku(String strKamoku) { this.strKamoku = strKamoku; } } 上記のように設定し、サーバー上でセットした値をテキストボックスに 入れてlist表示できたのですが、テキストボックスに入れた値を変更し、submitし、サーバー上でlistの中を見てみると、表示した時のままで変更した値が反映されてません。 表示したlistの値を変更する事はできるのでしょうか。 わかりづらい説明ですいませんが、なにかアドバイス宜しくお願いします。

    • ベストアンサー
    • Java
  • 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で解決)のですが、 できればタグライブラリで出来たらと思います。 どなたか分かる方がいましたら、ご教授下さい。

  • 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
  • Iterateタグ内で複数のリスト要素を参照したい

    StrutsのLogicタグを使って、表示項目、入力項目ともsessionで保持している内容を表示しています。 JSPのイメージは下記のような感じです。 <logic:iterate id="user" name="sessionList"> <bean:write name="user" property="uid"/> <html:text name="user" property="name" indexed="true"/> <br/> </logic:iterate> しかし、上記の方法だとActionFormのvalidateから戻ってきた場合、テキスト入力に「入力エラーになった内容」でなく「sessionで保持している内容」が表示されます。 なので、Iterateタグ内の表示項目"uid"はsessionのデータを表示し、入力項目"name"はActionForm内のデータを表示したいのですが方法が思いつきません。 (初期はsessionデータを表示しますが) どなたか良い方法をご教授願います。

    • ベストアンサー
    • Java

専門家に質問してみよう