【发布时间】:2012-07-24 22:20:14
【问题描述】:
我正在使用 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}" 调用小部件时,我会看到相同的对象显示两次。
有人对此有解决方案吗?我见过有人使用 jQuery 来清除重复项的下拉菜单,但我想知道是否有一个真正的解决方案,我可以根据下拉菜单返回的内容设置默认值。
另外,我正在使用sj: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 类中的值。然后用户可以更改该值或保持原样。
【问题讨论】:
-
name属性应该包含预选的值,至少对于普通的选择标签是这样工作的——试试 jQuery 等效项。 -
我似乎不明白你的问题。您能否发布您的代码、您在
sj:select中设置的对象以及您的操作类代码。 -
@UchennaNwanyanwu 我已经更新了我的代码。