3

struts2-jqueryプラグインを使用していsj:selectます。ドロップダウンウィジェットのデフォルト値を設定する必要があります。

ウィジェットは現在機能しており、適切なすべての値を表示します(マップから、値はメニューに表示される値です)。これは、適切なメソッドを処理するアクションクラスから呼び出されます。

<s:url id="menu" action="getListofObjects" />
<sj:select name="list" href="%{getListofObjects}" list="objects"/>

オブジェクトが青色で、そのIDが3であるとします。現在.jsp、すべてのオブジェクトが一覧表示されているページがあります。「3」をクリックすると、アクションが呼び出され、オブジェクト(青)が検出され、「3」と青の両方がアクション内に保存されます。.jsp次に、オブジェクトに関する情報を表示する新しいページを呼び出します。

私が欲しいのは、sj:select私が選択したオブジェクト(この場合は青色)をデフォルトにするドロップダウンメニューを用意することですが、クリックすると残りのオブジェクトが表示されます。でウィジェットを呼び出すとvalue="%{object}"、同じオブジェクトが2回表示されます。

誰かがこれに対する解決策を持っていますか?jQueryを使用して重複のドロップダウンをスクラブする人を見たことがありますが、ドロップダウンメニューが返すものに基づいてデフォルトを設定できる真の解決策があるかどうかを知りたいです。

また、sj:selectdouble / triple selectメソッドがいくつかあるため、s:selectに切り替えることができないために使用しています。

ありがとう。

更新->その他のコード

page1.jsp

<s:iterator value="penList">
<tr class="detail">
<td class="detail">
<s:url action="penUpdate" var="urlTag">
<s:param name="penId"><s:property value="penId"/></s:param></s:url>
<a href="<s:property value="#urlTag" />"><s:property value="penId" /></a></td>

penUpdateAction.java

public String execute(){
    getPen();
    return Action.SUCCESS;
}
public PenVO getPen(){
penVO = penService.searchPens(penId);
name = penVO.getName();
    id = penVO.getPenId();
return penVO;
}

Page1はpage2を呼び出すpenUpdateActionを呼び出します

Page2.jsp

<s:url id="nameList" action="getNames" />
<sj:select name="name" href="%{nameList}" list="names" onChangeTopics="reloadsecondlist"/>

これは、使用可能なすべての名前を表示するドロップダウンメニューです。動作していますが、penUpdateActionクラスに格納されている値にデフォルト設定したいと思います。その後、ユーザーは値を変更するか、そのままにしておくことができます。

4

1 に答える 1

4

これを試して。私はそれをテストしていませんが、うまくいくはずだと思います:

<sj:select name="list" href="%{getListofObjects}" list="objects" listKey="id" listValue="name" value="%{id}"/>

注:との値はlistKeylistValue入力する の のプロパティである必要がObjectありlistますsj:select

id属性に設定されたvalueプロパティは、設定するデフォルト値を持つアクション クラスのプロパティである必要があります。値が3であり、このような選択リストがあるとしましょう

<select>
    <option value="1">Yellow</option>
    <option value="2">Black</option>
    <option value="3">Blue</option>
</select>

ページが読み込まれると、選択がデフォルトで表示されますBlue。これを行う際に問題がある場合はお知らせください。

于 2012-07-24T14:20:14.497 に答える