ママのスキンケアのお悩みにおすすめアイテム

html:linkを使用してJSPを表示した際に、前のフォームのプロパティ値(ここではstaffNumberの値)を取得したいのですが,うまくいきません。
同じ処理をhtml:submitで実行すると取得できています。
その違いを教えて頂きたいのです。
以下がそのコードです。

【struts-config】
<form-bean dynamic="true" name= "loginForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name = "staffNumber" type= "java.lang.String" />
</form-bean>
<action name="loginForm" path="/login" scope="request" type="login.action.LoginAction"
validate="false">
<forward name="success" path="/login.jsp" />
</action>

【login.jsp】
<html:form action="/login">
 <html:text property="staffNumber" size="10"maxlength="8"/>
<html:link action="/login">testlink</html:link>
<html:submit value="test"/>
</html:form>

【LoginAction】
public class LoginAction extends Action{
public ActionForward execute (ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) throws Exception{
DynaValidatorForm loginForm =(DynaValidatorForm) form;
String staffNumber=(String)loginForm.get("staffNumber");
System.out.println(staffNumber);
return (mapping.findForward("success"));
}
}
linkの処理で同じJSPを表示していますが,前のプロパティ値を取得しているかをログで確認する事を優先しているのでそのようにしています。
質問の意味がわからない、ソースの不足等ありましたら御指摘下さい。
宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

html:link は、a 要素のタグを生成するので、単に遷移するのみです。

フォームをサブミットするわけではありません。
html:submit は、いわゆるサブミットボタンを生成するので、フォームをサブミットするわけです。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
linkは単に遷移をする機能をもつだけのものであるということなんですね。
でもさらにお手数をおかけしてもうしわけないのですが、html:linkを使用しても何とか次のJSP表示の際に前のプロパティ値を取得したいのです。
私が考えていたのが、linkが押された時にJavaScriptを呼んで前の情報を取得するといった処理を出来ないのか?等を考えているのですが、何か方法はあるのでしょうか?
それともlinkでは前の情報を取得する事は不可能なのでしょうか?
ご回答よろしくお願いします。

お礼日時:2004/05/23 11:28

html:linkに属性があります。

java.util.Mapを渡します。

参考URL:http://jakarta.apache.org/struts/userGuide/strut …
    • good
    • 0

# ここから先は微妙にカテゴリ違いですが・・・。



Javascript を使えば十分可能です。

html:link に onclick をつけて、フォームをサブミットさせてあげればいいのです。

一例をあげればこんな感じです。
<html:link onclick="document.form.submit(); return false;">

ちなみに "document.form.submit()" の form の部分は実際には form の name 属性の値にしてください。

分からないことがあればまた質問してください。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qhtml:linkでリンククリック時に画面入力値を取得してアクションへ渡す方法

Strutsを使用したログイン画面を作成しています。ID・パスワードを入力して、html:linkをクリックしてログインするという処理を行いたいです。

そこで、リンクをクリックした際にJSPに記述しているhtml:textとhtml:passwordの値を取得して、Actionへ渡し、その情報を元にDBへの問い合わせを行いたいのですが、html:linkで複数パラメータを渡す方法が分からないので教えていただきたいです。

過去質も参考にしてみましたが、今回の質問に的を得た内容がなかったので質問させていただきました。

参考にした方法
(1)JavaScriptのonclickイベントでサブミットさせる
⇒例えばdocument.form.submit();と書けそうだが,html:formにはname属性がないため、formの指定ができない?!

(2)Mapを利用してパラメータを渡す
⇒JSP内にMap設定のロジックを書く。Map(name,value)の形式で、value部分(画面入力値)はどうやって取得するのか分からない。

【struts-config】
<action-mappings>
<action path="/login_Anken"
type="action.Login_Anken_Action"
name="login_Anken_Form"
validate="true"
input="/pages/Login_Anken.jsp"
scope="request">
<forward name="success" path="/pages/MainMenu.jsp"/>
<forward name="fail" path="/pages/Login_Anken.jsp"/>
</action>
【Login_Anken.jsp】
<html:form action="/login_Anken" >
<table border="0" width="100%" >
<tr>
<td class="pname" colspan="4" >
****システム
</td>
</tr>
<tr>
<td colspan="4">
<hr size="5" width="100%" noshade>
</td>
</tr>
<tr>
<td class="gname" colspan="4" >
ログイン
</td>
</tr>
<tr>
<td colspan="4" >
<hr size="5" width="100%" noshade>
</td>
</tr>
<tr>
<td width="25%" >
</td>
<td class="login">
ユーザID
</td>
<td width="20%"">
<html:text property="userId"/>
</td>
<td width="20%">
</td>
</tr>
<tr>
<td width="25%" >
</td>
<td class="login">
パスワード
</td>
<td width="20%"">
<html:password property="password" />
</td>
<td width="20%">
</td>
</tr>
<tr>
<td width="10%" align="center" colspan="4" >
<html:link action="/login_Anken" name="map">ログイン
</html:link>
</td>
</tr>
</table>
</html:form>

【Login_Anken_Action.java】
public class Login_Anken_Action extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
ActionMessages errors = new ActionMessages();
//画面入力値を取得
Login_Anken_Form loginAnkenForm = (Login_Anken_Form) form;
boolean isSuccess = false;
Login_Anken_Business business =
new Login_Anken_Business();
String userName = null;
userName =
business.getLoginUserName (loginAnkenForm.getUserId(),
loginAnkenForm.getPassword());

//ユーザが存在すればログインOK
isSuccess = (userName != null);
if (isSuccess) {
//TODO
HttpSession session = request.getSession();
session.setAttribute("name", userName);
return mapping.findForward("success");
} else {
errors.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("errors.login"));
saveErrors(request, errors);
return mapping.findForward("fail");
}
}
}

Strutsを使用したログイン画面を作成しています。ID・パスワードを入力して、html:linkをクリックしてログインするという処理を行いたいです。

そこで、リンクをクリックした際にJSPに記述しているhtml:textとhtml:passwordの値を取得して、Actionへ渡し、その情報を元にDBへの問い合わせを行いたいのですが、html:linkで複数パラメータを渡す方法が分からないので教えていただきたいです。

過去質も参考にしてみましたが、今回の質問に的を得た内容がなかったので質問させていただきました。

参考にした...続きを読む

Aベストアンサー

ああ
このHTML見て一目でわかったわ。
<a href="~"
のhrefにリクエストが飛んでいるだけね。
<a href="javascript:return false"
<a href="#"
とかにしないとonclickが正常に働かないわよ。

Qリンクをクリックした時にformからPOST送信したい。

HTML、PHP、JavaScript等でサイトを作っているのですが・・・。

【実現出来ている例】
<form name="form1" method="post" action="Next.php" onSubmit="return InputCheck()">
 <input type="submit" value="送信">
</form>
 submitボタンを一つ置いて、それがクリックされた場合に
formの内容をPOSTで送信する。

【実現したい例】
<form name="form1 method="post">
 <a href="Next.php" onClick="???">???</a>
</form>
 formの中のリンクをクリックされた場合に、formの内容を
POSTで送信したいのですが、その実現方法がわかりません。
GETで送るという手もあり得ますが、今回はどうしてもPOST
したいのですが。

Aベストアンサー

<form name="form1" method="post" action="Next.php">
<a href="#" onClick="document.form1.submit();">???</a>
</form>

onclick内の対象がform1としてあてているので、
アンカータグは別にform内に記述しなくても大丈夫です

form内にhidden等でnameとvalueを持ったパラメータがあればそれも送られます

アンカータグから動的にvalueを変更したい場合は、
document.form1.hogename.value = 'hoge';
等をsubmit()の前に行えば可能です

ただしform内に
<input type="hidden" name="hogename" value="">
を記述する等、変更先パラメータの元を用意する必要がありますのでご注意下さい

QJSPでリンクを利用してパラメータを次画面に渡す方法について。

一覧表示されているデータのNOをクリックすると、二つのパラメータでデータベースへアクセスし、該当データの詳細画面に遷移する、というプログラムを作っています。

データベースへアクセスする際に必要なIDは2つで、仮にID_A、ID_Bとします。
リンク部分のソースは

---------------------------------------------------------------------
<a href = "update_form.jsp?ID_A=<%= rs.getString("ID_A") %>">番号</a>
<input type="hidden" name="ID_B" value="<%= rs.getString("ID_Bcat_id") %>">
---------------------------------------------------------------------

としておりますが、次画面へ遷移すると、ID_Bの値はnullとなってしまうために、正常にデータの取得ができません。

二つのパラメータを使用する場合のパラメータを渡す方法を教えて頂きたいと思います。よろしくお願いします。

一覧表示されているデータのNOをクリックすると、二つのパラメータでデータベースへアクセスし、該当データの詳細画面に遷移する、というプログラムを作っています。

データベースへアクセスする際に必要なIDは2つで、仮にID_A、ID_Bとします。
リンク部分のソースは

---------------------------------------------------------------------
<a href = "update_form.jsp?ID_A=<%= rs.getString("ID_A") %>">番号</a>
<input type="hidden" name="ID_B" value="<%= rs.getString("ID_Bcat_id") %>">...続きを読む

Aベストアンサー

<a href = "update_form.jsp?ID_A=<%= rs.getString("ID_A") %>&ID_B=<%= rs.getString("ID_Bcat_id") %>">番号</a>

としてID_Bを&で繋げればMethod="get"で送れますね。
inputタグで送る場合はformタグでactionアトリビュートに飛ぶjspを指定してsubmitボタンかJavaScriptでsubmitさせなければならないと思います。

QStruts:フレーム内JSPからcssファイルの参照方法

htmlタグライブラリのframeで指定したJSPからスタイルシート(*.jsも)の参照ができません。
色々試したのですが、解決方法を教えて下さい。。。
環境はWin2000、Tomcat5、Struts2です。

↓フレーム呼び出し
<frameset rows="50%,*">
<html:frame page="A.jsp"/>
<html:frame page="B.jsp"/>
</frameset>
※ディレクトリ:/apname/jsp/X.jsp

↓フレーム内(A.jsp)
<link rel="stylesheet" href="./C.css" type="text/css"/>
※ディレクトリ:/apname/css/C.jsp

ちなみに「href="../css/C.css"」としてもダメなんです。
参照先ディレクトリは色々試したけど使えません。

よろしくお願いします。

Aベストアンサー

No.1 の方が回答してくれているが別の回答を。

Struts を使用しているのならば、CSS などへのリンクは html:rewrite で書いた方がやりやすいと思う。
今回の構成では以下のように書きます。

<link rel="stylesheet" href="<html:rewrite page="css/C.css"/>" type="text/css"/>

このように書くと、クライアントでは以下のようなサーバ相対になっています。

<link rel="stylesheet" href="/apname/css/C.css" type="text/css"/>

JSP のタグ解析は HTML のタグとは別に行われるので、上記のように HTML の属性の中に JSP タグを書いても正常に処理されます。

CSS などは、JSP と別フォルダに入れることが多いために相対パスで書いていると JSP ファイルを移動したくなったときに面倒になります。
また、Struts の場合、JSP がおいてある場所と実際の URL の位置関係がアクションの実装の仕方などによっては一致しなくなりますので、「JSP ファイルから見ての相対パス」では正常に解決できなくなることがあります。
このため、サーバ相対に書き直してくれる html:rewrite を使用した方が無難だと思います。

参考URL:http://tag.main.jp/htmlrewrite.html

No.1 の方が回答してくれているが別の回答を。

Struts を使用しているのならば、CSS などへのリンクは html:rewrite で書いた方がやりやすいと思う。
今回の構成では以下のように書きます。

<link rel="stylesheet" href="<html:rewrite page="css/C.css"/>" type="text/css"/>

このように書くと、クライアントでは以下のようなサーバ相対になっています。

<link rel="stylesheet" href="/apname/css/C.css" type="text/css"/>

JSP のタグ解析は HTML のタグとは別に行われるので、上記のように H...続きを読む

QJSPの処理の途中で、JavaScriptの処理をしたい

プログラムをJSPで記述している(<% %>タグ)のですが、
JavaScriptのalertやconfirmなどのポップアップするダイアログを
表示したいのです。それは可能なのでしょうか?

Aベストアンサー

No.2の回答に対する回答(変な日本語ですが)です。

JSPとJavaScriptの処理の行われる順番について考えていないと
エラーになることがありますよ。
大まかな流れは、
 JSPのソースをサーバ側で解釈、実行する(HTMLのソースを吐き出す)
  ↓
 クライアントに生成したソースを送信する
  ↓
 クライアント側のブラウザがソースを解釈する
  ↓
 ソースの中のJavaScriptを、ソースの上のほうから順次実行する
  ↓
 同時に、通常の表示(HTMLの解釈)も実行される

 と、こういう流れですので、例えば、JavaScriptで値を入力し、
JSPでその値を使おうとすると、エラーとなります。

 具体的にやりたいこと(やろうとしていること)を書いていただいたほうが
適切に回答できますが、上記が今考えられるエラーの原因です。

QStrutsのデータ受け渡しについて

画面遷移時のデータの引継ぎについて。

画面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項目が返ってきてしまうのでデータの判別が出来ません。特に明細が複数行あるときには困難です。

こういったデータの引継ぎはどのように行えばよいのでしょうか?

どうぞご教授下さいますよう、お願い申し上げます。

画面遷移時のデータの引継ぎについて。

画面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">
...続きを読む

Aベストアンサー

Sessionを使うのが一般的でしょう。

QJava-jspの画面入力値保持について

画面にテキスト、ラジオボタン、リストボックス とボタンがあります。
ボタンを押すと、JAVAで処理を行い、jspのviewで表示します。

1.テキスト、ラジオボタン、リストボックスなどに値が入力、設定されている状態で
ボタンを押して処理後にテキスト、ラジオボタン、リストボックスの値が
変わらないようにしたいのですが、
その場合、たとえば、入力、設定値をセッションになどに格納しておき
jspの所で、セッションから値を設定すると言うような方法になるのでしょうか?

2.ボタン押して処理後、ラジオボタン、リストボックスの選択値も
  変えないようにしたいのですが、
  これはどのように実現するのが、適切なのでしょうか?


以上、よろしくお願いします。

Aベストアンサー

ボタンというのはフォームのサブミットボタンのことですよ?
つまり、画面遷移が起きることを前提とすると(元の同じ画面に戻るのも含みます)

テキスト、ラジオボタン、リストボックスの状態を「要求パラメータ」として
送信し、それを次画面に反映するというのが最も一般的な方法です。

フレームワーク struts のアクションフォーム&JSPカスタムタグを使うと比較的楽に
そういう画面が作れますが、多くのフレームワークでも大差ありません。
簡単な画面なら素のサーブレート+JSPでも十分作れます。

セッションでもできますが、 セッションはログイン情報などの保持など、
限定された範囲で使うのが普通です。また、結局セッションに最新の
テキスト、ラジオボタン、リストボックスの状態を送るには、「要求パラメータ」
を送信する必要があります。

AJAXを使うという方法もあります。この場合、ボタンは AJAX 処理だけを行い
画面遷移を起こさないので、サーバ側で画面のテキスト、ラジオボタン、
リストボックスの状態をもつ必要はありません。

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

こんにちは、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>


 よろしくお願いします(..

こんにちは、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>

 のようにして表示する方法はわかりました。
 今度は、これを表示するのではなくて処理に使いたいのですが、その方法がわからず難儀しています。

 こんな書き方...続きを読む

Aベストアンサー

No.1の方のtypoを補いつつ、

<logic:equal name="LOOP" property="data2" value="1">

</logic:equal>
<logic:notEqual name="LOOP" property="data2" value="1">

</logic:notEqual>

ですね。これですむなら、この方法を採用すべきです。


「本当は牛馬ではなく、実はもっと複雑で」というのであれば、form-beanのpropertyを通じて表示データを取得できるように、あらかじめ仕込んでおく手法もあります。


「どうしてもスクリプトレットで」となると、logic:iterate の処理とは全く無関係に、自身でform-beanからデータを引っ張ってくることになるかと思います。背景を適当に想像で補って全体を記せば、例えば以下のようなコードです。
どこか倒錯した感がありますね。だから、この方法は使うべきではありません。

<%@ page import="myproject.ListForm" %>
<%@ page import="myproject.ItemForm" %>

<html:form action="/myproject/listAction">

<bean:define id="LOOP_LIST" name="listForm" property="list"/>
<logic:iterate id="LOOP" name="LOOP_LIST" indexId="index">
<bean:write name="LOOP" property="data1"/>
<%! int index = 0; %>
<%
ListForm list = (ListForm) request.getAttribute("listForm");
ItemForm item = (ItemForm) list.getList().get(index++);
String code = item.getData2();
out.println(code.eqauls("1") ? "牛": "馬");
%>
<hr/>
</logic:iterate>

※ String の同値Checkには、equals() を使います。

No.1の方のtypoを補いつつ、

<logic:equal name="LOOP" property="data2" value="1">

</logic:equal>
<logic:notEqual name="LOOP" property="data2" value="1">

</logic:notEqual>

ですね。これですむなら、この方法を採用すべきです。


「本当は牛馬ではなく、実はもっと複雑で」というのであれば、form-beanのpropertyを通じて表示データを取得できるように、あらかじめ仕込んでおく手法もあります。


「どうしてもスクリプトレットで」となると、logic:iterate の処理とは全く無関係...続きを読む

QStrutsでチェックボックスの値を取得する方法

明細行のチェックボックスで、選択した状態で画面再表示時にチェックを外した場合、再度画面を表示すると外したはずのチェックが戻ってしまいます。
現象
1.下記「作成したJSP」のチェックボックスを選択し、サーバへ送る。
2.「ViewList」内のチェックボックス「testCheckBox」(boolean型)にtrueが設定される。
※ViewListはtestActionFormのList型で、javaでもIteratorで1件づつtestActionFormを取得し、「testCheckBox」を確認している
3.上記1と同じHTMLフォームにおいて、今度はチェックボックスの選択を外して、サーバへ送る。
4.チェックを外したにも関わらず、trueの状態になってしまう。
良い対処方法があれば、ご教授をお願いします

※他のホームページで、ActionFormに下記メソッドを記述すると、チェックボックスが正常に戻ると書いてあり、試しましたがダメでした。
画面ActionForm内に、testActionFormのListを作成し、その中にチェックボックスがある場合、適用されないのでしょうか?
public void reset(ActionMapping mapping, HttpServletRequest request){
testCheckBox=false;
}

☆作成したJSP
<%-- 明細行の反復表示 start --%>
<logic:iterate name="testActionForm" id="ViewList"property="ViewList" indexId="idx">
<!-- チェックボックス 開始-->
<td nowrap >
<html:checkbox property="testCheckBox" name="ViewList" indexed="true" index="idx" />
</td>
<!-- チェックボックス 終了-->
<!-- 入力テキスト 開始-->
<td nowrap >
<html:text property="testInput" size="50" maxlength="30" name="ViewList" indexed="true" index="idx" />
</td>
<!-- 入力テキスト 終了-->
<%-- 明細行の反復表示 end --%>
</logic:iterate>

明細行のチェックボックスで、選択した状態で画面再表示時にチェックを外した場合、再度画面を表示すると外したはずのチェックが戻ってしまいます。
現象
1.下記「作成したJSP」のチェックボックスを選択し、サーバへ送る。
2.「ViewList」内のチェックボックス「testCheckBox」(boolean型)にtrueが設定される。
※ViewListはtestActionFormのList型で、javaでもIteratorで1件づつtestActionFormを取得し、「testCheckBox」を確認している
3.上記1と同じHTMLフォームにおいて、今度はチェックボックス...続きを読む

Aベストアンサー

>>resetメソッドを定義するのは、ActionFormのクラスです。
>ActionFormのクラスに下記resetメソッドを定義しています。
>public void reset(ActionMapping mapping, >HttpServletRequest request){
>testCheckBox=false;
>}

ActionFormがもっているViewListのtestActionFormについてです。
public void reset(ActionMapping mapping, HttpServletRequest request){
for(int i=0;i<viewList.size();i++){
((testActionForm)viewList.get(i)).setTestCheckBox(false);
}
}

QStrutsでJSPからListを受け取りたい

JSPに複数のhidden(動的に数が変化)があり、これらの値をformのlist(配列)に詰めたいです。
尚、nameの値は別の処理でjavascriptを使いvalueを変化させるため連番であれば構わないです。です。

~~~JSP~~~
<input type="hidden" name="str1" value="a"/>
<input type="hidden" name="str2" value="b"/>
<input type="hidden" name="str3" value="c"/>
~~~~~~~~
上のJSPから下記のFORMに詰めたい
~~~form~~~
private List strList;

public List getStrList(){
return strList;
}
~~~~~~~~

又、こちらで調べたところ下記のようにすればいけるようですが欲しい値は一つのためBeanを使用しなくても実現可能ではないかと思い、質問させていただきました。
よろしくお願い致します。

~~~JSP~~~
<input type="hidden" name="testArray[0].str" value="a"/>
<input type="hidden" name="testArray[1].str" value="b"/>
<input type="hidden" name="testArray[2].str" value="c"/>
~~~~~~~

~~~FORM~~~

private List list;
public TestBean getTestA(int iIndex) {
while (this.list.size() <= iIndex) {
this.list.add(new TestBean ());
}
return ( TestBean ) this.list.get(iIndex);
}
public Object[] getTestArray() {
return list.toArray();
}

public static class TestBean {
private String str = "";
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
}

JSPに複数のhidden(動的に数が変化)があり、これらの値をformのlist(配列)に詰めたいです。
尚、nameの値は別の処理でjavascriptを使いvalueを変化させるため連番であれば構わないです。です。

~~~JSP~~~
<input type="hidden" name="str1" value="a"/>
<input type="hidden" name="str2" value="b"/>
<input type="hidden" name="str3" value="c"/>
~~~~~~~~
上のJSPから下記のFORMに詰めたい
~~~form~~~
private List strList;

public List getStrList(){
return strLis...続きを読む

Aベストアンサー

うーむむ・・・。こゆうことでしょうか。
アドバイスの方向が間違ってたらすいません。
(※実行してないため、コードはあくまで参考程度で。)

----Jsp側
<html:hidden property="strArray[0]" value="a" />
<html:hidden property="strArray[1]" value="b" />
<html:hidden property="strArray[2]" value="c" />
....

----Form側
String[] strArray;
List<String> strList;
public void setStrArray(String[] strArray) {
____this.strArray = strArray;
____this.strList = Array.asList(strArray);
}
public String[] getStrArray() {
____return this.strArray;
}
public List<String> getStrList() {
____return this.strList;
}

うーむむ・・・。こゆうことでしょうか。
アドバイスの方向が間違ってたらすいません。
(※実行してないため、コードはあくまで参考程度で。)

----Jsp側
<html:hidden property="strArray[0]" value="a" />
<html:hidden property="strArray[1]" value="b" />
<html:hidden property="strArray[2]" value="c" />
....

----Form側
String[] strArray;
List<String> strList;
public void setStrArray(String[] strArray) {
____this.strArray = strArray;
____this.strList = Array.asList(strArra...続きを読む


人気Q&Aランキング