私のJSPに複数の選択ボックスがあります。ユーザーが最初の選択ボックスを選択したときに、そのActionクラスを使用してデータベースを照会する必要があります。 2番目の選択ボックス(など)。Struts 2 - Populate s:最初に基づいてサーバーから選択します。select
最初の選択ボックスの値を正しく表示して選択することはできますが、最初の選択ボックスに基づいて2番目の値をdbに問い合わせる方法を見つけることはできません。ここでは、最初の選択のために動作するコードです。第1選択に基づいて第2選択を得るための良いアプローチに関する提案は、非常に高く評価されるだろう。
JSP
<s:form action="fileUploadAction" method="post" enctype="multipart/form-data">
<s:div>
<s:select label="Select #1:" list="select1Map" listKey="key"
listValue="value" name="select1" headerKey="-1"
headerValue="--Select a Value--"/>
</s:div>
<s:div>
<s:select label="Select #2:" list="select2Map" listKey="key"
listValue="value" name="select2" headerKey="-1"
headerValue="--Select an Value--"/>
</s:div>
</s:form>
struts.xml
<action name="fileUpload" class="fileUploadAction" method="display">
<result name="success">/jsp/dataUpload/fileUpload.jsp</result>
</action>
FileUploadAction.java
public class FileUploadAction extends AbstractAction{
private Map<Object, String> select1Map;
private Map<Object, String> select2Map;
private FileUploadService service = null;
public FileUploadAction(){
super();
}
public String display(){
select1Map= service.getDataForDropDown(getUser().getId());
select2Map = new HashMap<Object,String>();
return SUCCESS;
}
}
これはローリングしています...、ロンボクルールズ。 –
@RomanCええ、名前やタイプを変更するたびに、ゲッターやセッターを消去して再生成する必要はありません。クラスの '@Data'を使用すると、一度にそれらのすべてを(時には便利です)... –
Eclipseのようなものか、Strutsのメソッドの名前を付けて好きですか? –