2012-07-23 83 views
3

我正在使用struts2-jquery插件,我需要为sj:select下拉小部件设置默认值。设置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; 
} 

第1页调用它调用第2页

的penUpdateAction

Page2.jsp

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

这是一个下拉菜单,显示所有可用的名称。它正在工作,但我希望它默认存储在penUpdateAction类中的值。然后用户可以更改该值或保持原样。

+0

'name'属性应该包含预选的值,至少它是如何工作的正常选择标记 - 尝试它的jQuery等效。 – 2012-07-23 23:58:11

+0

我似乎无法理解您的问题。你可以发布你的代码,你在'sj:select'中设置的对象和你的动作类代码。 – 2012-07-24 09:22:24

+0

@UchennaNwanyanwu我已经更新了我的代码。 – user1287523 2012-07-24 13:12:33

回答

4

试试这个。我没有测试它,但我认为它应该工作:

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

注:listKeylistValue值必须是在list您正在使用填充sj:selectObject的性能。

value属性中设置的id属性应该是您的操作类中的一个属性,它带有您要设置的默认值。我们说的价值是3,和你有一个选择列表这样

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

页面加载时,选择将默认Blue显示。 让我知道你是否有这样做的问题。

+0

谢谢:)需要添加onSuccessTopics来获得依赖下拉工作,但您的代码工作。欢迎来到 – user1287523 2012-07-24 19:07:45

+0

@ user1287523 – 2012-07-25 07:46:53