質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

Q&A

解決済

1回答

10691閲覧

JSP→ActionFormへのListDto受け渡し

koonya

総合スコア7

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

0グッド

0クリップ

投稿2015/11/20 01:56

編集2015/11/20 05:43

Strutsを使ったweb開発を行っています。

下記のような動作をさせたいのですが、想定した動作をしておりません。
対応方法をご教授頂けませんでしょうか。

【やりたいこと】
①DBから取得した複数明細データをDTOに格納し、JSPを利用して一覧形式画面に表示。
②一覧形式に表示された各明細毎にプルダウンリストを追加
③一覧形式データと選択されたプルダウンリスト内容を①と同じDTOに返す

【想定動作】
DTOにプルダウンリストの内容が格納される。

【現在動作】
DTOにプルダウンリストの内容が格納されない。

■ソースコード抜粋
・hogeDto
private String userId = "";
private String selectValue = "";
//どちらの変数もgetter,setterも定義

・hogeForm
private hogeDto hd = null;
public void setHd{
return hd;
}
public setHd (hogeDto hd){
this.hd = hd;
}

private List<hogeDto> hdl = null;
public setHdl{
return hdl;
}
public setHdl (List<hogeDto> hdl){
this.hdl = hdl;
}

・hoge.jsp
<logc:iterate id="hd" name="hogeForm" property="hdl">
<TR>
<TD>
<bean:write name="hd" property="userId" />
</TD>
<TD>
<html:select name="hd" property="selectValue" />
<html:option value="0">A</html:option>
<html:option value="1">B</html:option>
</html:select>
</TD>
</TR>
</logic:iterate>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

自分がstrutsを使って開発してたのがかなり前なのでいろいろ記憶が曖昧ですが
とりあえず気になったのが
<logc:iterate id="hdl" name="hogeForm" property="hd">

<logc:iterate id="hd" name="hogeForm" property="hdl">

<html:select name="hd" property="selectValue" />
<html:option value="0">A</html:option>
<html:option value="1">B</html:option>

<html:select name="hd" property="selectValue">
<html:option value="0">A</html:option>
<html:option value="1">B</html:option>
</html:select>

となるのかなぁ・・・。

投稿2015/11/20 05:34

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koonya

2015/11/20 05:40

回答ありがとうございます。 たしかに間違ってますね、、 ただ、質問欄に記載する際のミスでした、実際のソースはご回答の通りになってます。
退会済みユーザー

退会済みユーザー

2015/11/20 05:59 編集

試行錯誤するしかないですね・・・。 hogeForm private List<hogeDto> hdl = new ArrayList<hogeDto>(); public setHdl{ return hdl; } public setHdl (List<hogeDto> hdl){ this.hdl = hdl; } 出力されたHTMLのソースを見れば少しは解決の糸口が見つかるかもです。
koonya

2015/11/20 08:52 編集

htmlは下記のようなかたちになっているようです。 <FORM onsubmit="return false;" method=post name=hogeForm target=_parent> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD class=titlebar_bg> <TABLE width="100%" border=0> <TBODY> <TR> <TD class=list_data_bg_left>ほげ </TD> <TD class=list_data_bg_left><SELECT name=selectValue><OPTION value=0>0</OPTION> <OPTION selected value=1>A</OPTION> </SELECT> </TD> </TR> </TBODY> </TABLE> </FORM>
退会済みユーザー

退会済みユーザー

2015/11/20 12:13

ActionFormとしてhogeFormが指定されているということでいいんですよね? その場合、このHTMLですとselectValueの値はhogeForm内のselectValueフィールドに格納しようとします。 Listに格納するにはSELECTタグのnameは”hdl[インデックス番号].selectValue”にする必要がある気がします。 試しに <logic:iterate id="hd" name="hogeForm" property="hdl"> ↓ <logic:iterate id="hdl" name="hogeForm" property="hdl"> <html:select name="hdl" property="selectValue" indexed="true"> とかやってみたらどうなりますか?
koonya

2015/11/24 00:35

おかげさまで無事動作しました!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問