今だけ人気マンガ100円レンタル特集♪

Strutsを使っているWEBシステムで、taglibを使用せずに、情報を受け渡ししたいです。


..やろうとして挫折したこと

..1.setAttributeでの受け渡し
....setAttributeは画面のロード時にしか実行できないようで、無理でした。
....(正確には、RadioボタンのOnLoadイベントで、JSPからはsetAttributeを実行できない。)

..2.form上のコントロールのValueでの受け渡し
....input.type="radio".name="radio_object".value="値"
....のようにして、次の画面遷移先に渡そうとしましたが、
....struts-config.xml.で記述している.formクラスに対し、
....taglib.を使用して、formクラスに値設定する方法でなければ、
....情報を受け渡しできないようでした。

taglib は、内部的には何らかの方法で、formクラスに値を受け渡ししているはずですし、
その方法を、jsp上で記述する方法もあると思っているのですが、
無理なのでしょうか?

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

A 回答 (2件)

Strutsを使用しているのにカスタムタグを使用しないというのがよくわかりませんが、何かしらの考えがあってのことだと思いますが・・・。



2の方法で
<form action="・・・" method="POST">
<input type="radio" name="radio_object" value="1">
</form>

となっている場合、アクションで
request.getParameter("radio_object")
で取得できないでしょうか?

これならアクションフォームの内容には関係なく取得できると思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
radioボタンではなく、checkboxでうまくできました。
(radioボタンでは今チャレンジしていますが、うまくいくと思います。)

> Strutsを使用しているのにカスタムタグを使用しないというのがよくわかりませんが、何かしらの考えがあってのことだと思いますが・・・。
formクラスに依存させない形にしたかったためです。
具体的には、Map型の配列でデータをインターフェースして、
Mapの中に何個の要素が入っていようとも、
動的にJSPで情報を表示させたかったためです。

たとえば、
(1)Mapに、社員ID、社員名、所属部署というようなデータがある。
(2)Mapに、注文ID、商品ID、商品名、個数というようなデータがある。
というな情報を、その都度、要素数にあわせてHTMLのテーブルを作成したいということをしたいためです。


> radioボタンではなく、checkboxでうまくできました。
> (radioボタンでは今チャレンジしていますが、うまくいくと思います。)

※なお、radioではなく、checkboxで先に試したのは、
valuesに値が入っているもののみ、
setAttributeがなされるようだったためです。

お礼日時:2009/04/20 13:43

>radioボタンではなく、checkboxでうまくできました。



複数のものからひとつを選ぶ→ラジオボタン
複数のものから複数のものを選ぶ→チェックボックス

の使い方が基本ですが、ラジオボタンで実装予定のものを
チェックボックスで実装しても問題ないでしょうか?

チェックボックスにしたことで複数選ばれ、新たなバグは発生しないかもう一度確認してみてはいかがでしょうか。


>※なお、radioではなく、checkboxで先に試したのは、
>valuesに値が入っているもののみ、
>setAttributeがなされるようだったためです。
確かにチェックされていないものはサブミットされません。
ただし、チェックが入っていいたものからチェックをはずすと
サブミットされないので十分に検証したほうがいいと思います。
(resetメソッド利用など)

例)
<input type="checkbox" value="1" checked>
をチェックをはずしてサブミットしてもチェックをはずされたことがわからない。

参考URL:http://okwave.jp/qa2311483.html
    • good
    • 0
この回答へのお礼

ありがとうございます。

> > Strutsを使っているWEBシステムで、taglibを使用せずに、
> > 情報を受け渡ししたいです。

> radioボタンではなく、checkboxでうまくできました。

すみません、表現が不適切でした。
taglibを使用せずに情報を受け渡しができることを確認でするために、先にcheckboxで確認したという意味でした。


>※なお、radioではなく、checkboxで先に試したのは、
>valuesに値が入っているもののみ、
>setAttributeがなされるようだったためです。

本当は、最初からradioで確認をしたかった状況でした。
しかしながら、radioボタンの仕様として考えられることとして、
(1)checked になっているものだけを渡すのか?
(2)checkedプロパティがtrue になっているものだけを渡すのか?
(3)values に値が入っているものだけを渡すのか?
(4)values にchecked という文字列が入っているものだけ渡すのか?
などなどと、色んな仕様が考えられたので、(↑まぁ、さすがにありえないだろうなというのも混じってますが、、、)

仮説として『もしや requestオブジェクトには、valueしかわたらないのだろうか?』という風に考え、
実は実績があったcheckboxで、先に確認をしたみたという状況でした。


なお、最終的には、radioボタンで情報を受け渡しをしているのですが、結局、radioボタンのvaluesに、各選択肢のIDを設定し、
getParameterValuesで、各選択肢のIDを取得し、
そのIDに紐付くデータを、次の処理に渡しているという感じになってしまいました。

↑下記のようなことをしようとしていたため。
radio1、購入対象商品ID、購入対象商品、価格
radio2、購入対象商品ID、購入対象商品、価格

ありがとうございました。

お礼日時:2009/04/21 12:06

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

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

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

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

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

Qラジオボタンの選択肢をサーブレットで取得するには?

サーブレットの開発を行っていますが、ブラウザー側で
ラジオボタンを選択した際に何を選択したかのデータを取得したいのです。
(下記のHTMLで言えば、割引手形か、手形貸付か、証書貸付というのを取得したいのです)
パラメーターをサーブレットで受け取りたいのですが
うまくいきません
HTMLでHIDDENを使用するとか聞いたことはあるのですがどのようにコーディングすればいいんでしょうか?
よろしくお願いいたします。

<p>
<input type="radio" name="radiobutton" value="radiobutton">
割引手形 
<input type="radio" name="radiobutton" value="radiobutton">
手形貸付 
<input type="radio" name="radiobutton" value="radiobutton">
証書貸付
</p>

ブラウザー側からは
<form action="http://localhost/servlet/yuushi" method=post>
の指定を行っています。
サーブレットでの受け取り方を、
String p2=request.getParameter("radiobutton");
 とすると、p2=radiobuttonとデータがセットされました。

サーブレットの開発を行っていますが、ブラウザー側で
ラジオボタンを選択した際に何を選択したかのデータを取得したいのです。
(下記のHTMLで言えば、割引手形か、手形貸付か、証書貸付というのを取得したいのです)
パラメーターをサーブレットで受け取りたいのですが
うまくいきません
HTMLでHIDDENを使用するとか聞いたことはあるのですがどのようにコーディングすればいいんでしょうか?
よろしくお願いいたします。

<p>
<input type="radio" name="radiobutton" value="...続きを読む

Aベストアンサー

それぞれの項目の value を、ユニークにして下さい。例えば、

<input type="radio" name="radiobutton" value="1"> 割引手形 
<input type="radio" name="radiobutton" value="2"> 手形貸付 
<input type="radio" name="radiobutton" value="3"> 証書貸付

そうすれば、「手形貸付」を選択したときに

String p2 = request.getParameter("radiobutton");

とすれば、p2 は "2" になります。

QJSP + ラジオボタン

JSP+Servlet+Beanで作ってます。
JBuilder5を使ってます。

JSPはラジオボタン、テキスト、ボタン等があります。
<INPUT TYPE = "radio" NAME = "r1" VALUE = "ins">A
<INPUT TYPE = "radio" NAME = "r1" VALUE = "upd">B
<INPUT TYPE = "radio" NAME = "r1" VALUE = "del">C

としています。
たとえば、Bを選択時、ボタンクリックで
Servletにリクエストを送信しますが、
Servletから再びJSPを呼び出し、画面を
表示するとき、ラジオボタンはBを選択
させたいのですが、どうしたらいいですか?
FormタグのCHECKEDというオプションを
どのように使えばいいのか教えていただきたいのですが。


テキストには、Beanでsetメソッド、
JSPでは、<jsp:getProperty・・・>を使って
セットできているんですが、ラジオボタンも
同様ですか?
@@@・・・JSPのタグを勉強しないといけないです。
@@@勉強不足です。

JSP+Servlet+Beanで作ってます。
JBuilder5を使ってます。

JSPはラジオボタン、テキスト、ボタン等があります。
<INPUT TYPE = "radio" NAME = "r1" VALUE = "ins">A
<INPUT TYPE = "radio" NAME = "r1" VALUE = "upd">B
<INPUT TYPE = "radio" NAME = "r1" VALUE = "del">C

としています。
たとえば、Bを選択時、ボタンクリックで
Servletにリクエストを送信しますが、
Servletから再びJSPを呼び出し、画面を
表示するとき、ラジオボタンはBを選択
させたいの...続きを読む

Aベストアンサー

<% %>のなかに
<jsp:getProperty name="wk" property="aaa" />
のようなJSPタグを使用することはできません。
これはエラーになります。

wkがBeanのインスタンス名、aaaがプロパティ名なので
<% if(wk.getAaa()==1){ out.print("checked");} %>

でよいと思いますが・・・

Qの値をリストで取得したい

Struts2です。
リストの取得の仕方で困っています。

特定の条件で検索をかけ、jspに表示された結果を一部textfieldで<s:iterator>のリスト表示し、その中身を変更して更新ボタンを押すと、DBのデータを更新する、という流れです。

jspは以下のようになっています。(一部抜粋)

<table border="1">
<s:iterator status="st" value="projectList">
<tr>
<td><s:checkbox id="isChecked" name="isChecked" /></td>
<td><s:property value="projno"/></td>
<td><s:textfield id="projname" name="projname" maxlength="24" size="52" /></td>
<td><s:select id="deptno" name="deptno" list="departmentList" value="%{deptno}" listKey="deptno" listValue="deptno" /></td>
<td><s:textfield id="respemp" name="respemp" maxlength="6" size="12" /></td>
<td><s:textfield id="prstaff" name="prstaff" maxlength="6" size="12" /></td>
<td><s:textfield id="prstdate" name="prstdate" maxlength="8" size="12" /></td>
<td><s:textfield id="prendate" name="prendate" maxlength="8" size="12" /></td>
<td><s:textfield id="majproj" name="majproj" maxlength="6" size="12" /></td>
</tr>
</s:iterator>
</table>
<s:property value="listSize"/>件
<s:form >
<table>
<tr>
<td><s:textfield label="プロジェクトNo" id="projno" name="projno" size="8" maxlength="6" /></td>
</tr>
</table>
<table>
<tr>
<s:submit action="search103R" value="一覧検索" onclick="return search_fnc()" />
<s:submit action="modify103R" value="一覧更新" onclick="return modify_fnc()" />
<s:submit action="jumpStruts2" method="jump103R3" value="登録画面" />
<s:property value="replyMsg" />
<s:hidden value="%{projno}" />
</tr>
<s:actionerror />
</table>
</s:form>

javaのロジックは、以下のようになっています。引数に入れられた項目で更新する、という処理です。

// 更新処理
public void modify(String projno, String projname, String deptno, String respemp, String prstaff, String prstdate, String prendate, String majproj) throws SQLException, IOException {
// SQLプロパティファイル読み込み
sqlConf = DevLearningUtils.loadProperties("sql");
// SQL文
    UPDATE PROJECT SET PROJNAME = ?, DEPTNO = ?, RESPEMP = ?, PRSTAFF = ?, PRSTDATE = ?, PRENDATE = ?, MAJPROJ = ? WHERE PROJNO = ?

// 更新のSQL文を読み込む
statement = conn.prepareStatement(sqlConf.getProperty("ProjectModify"));

// 更新項目をSQL文にセット
statement.setString(1, projname);
statement.setString(2, deptno);
statement.setString(3, respemp);
// プロジェクト工数が空なら0を入れる
if (prstaff.length() == 0) {
statement.setString(4, "0");
} else {
statement.setString(4, prstaff);
}
statement.setString(5, FormatUtils.addHyphenToDate(prstdate));
statement.setString(6, FormatUtils.addHyphenToDate(prendate));
statement.setString(7, majproj);
statement.setString(8, projno);

statement.executeUpdate();
}

色々と調べてみたのですが、iteratorの内容をリストとしてjavaで取得する、という方法がわかりませんでした。ご教示お願いします。

Struts2です。
リストの取得の仕方で困っています。

特定の条件で検索をかけ、jspに表示された結果を一部textfieldで<s:iterator>のリスト表示し、その中身を変更して更新ボタンを押すと、DBのデータを更新する、という流れです。

jspは以下のようになっています。(一部抜粋)

<table border="1">
<s:iterator status="st" value="projectList">
<tr>
<td><s:checkbox id="isChecked" name="isChecked" /></td>
<td><s:property value="projno"/></td>
<td><s:textfield id="projname" name="projname" maxl...続きを読む

Aベストアンサー

nameが
projectList[0].projname
といった具合になるように生成してあげれば、
projectListの0番目の要素のprojnameに値をセットしてくれます。

具体的には
<s:iterator status="st" value="projectList">
<s:textfield name="projectList[%{#st.index}].projname" value="%{projname}" />
とします。

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

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

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

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


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

Aベストアンサー

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

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

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

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

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

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);
}
}

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 の処理とは全く無関係...続きを読む

QStruts2 タグの値取得について教えてください。

現在、HashMapにKeyとValueを入れ、<s:select>タグを使用し、
選択リストを表示し、選択後<s:submit>で値を
Actionに渡すプログラムを書いております。

今のところ表示まではできるようになったのですが、
Action側で値の取得の方法がわかりません。

いろいろ調べてみたのですが一覧を表示する方法の
サイトはいくつか見つかったのですが値の取得方法がどうしてもみつかりません。

ご存知の方がいらっしゃいましたら
参考URLや方法等ご教示いただけないでしょうか。

Aベストアンサー

値の受け取り方には、FieldDriven, ModelDriven,
ScopedModelDriven等の方法がありますが、
一番簡単なFieldDrivenであれば、
Actionにプロパティを実装して、
そのプロパティ名をタグのname属性に指定すれば良いです。

FooAction {
private String pref;
// アクセッサは適宜実装して下さい。
}

<s:select name="pref" list="#{'01':'北海道', '02':'青森県', 以下略}"/>

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

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を使うのが一般的でしょう。

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

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

Aベストアンサー

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

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

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

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


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング