【问题标题】:Set default value of sj:select设置 sj:select 的默认值
【发布时间】: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 我已经更新了我的代码。

标签: jquery struts2


【解决方案1】:

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

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

注意:listKeylistValue 的值必须是listObject 的属性,您将使用它填充sj:select

value 属性中设置的id 属性应该是您的操作类中的一个属性,它带有您要设置的默认值。假设值为3,并且您有一个这样的选择列表

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

当页面加载时,选择默认显示Blue。 如果您在执行此操作时遇到问题,请告诉我。

【讨论】:

  • 谢谢 :) 需要添加 onSuccessTopics 才能使相关下拉菜单正常工作,但您的代码可以正常工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-14
  • 2010-09-23
  • 2015-03-13
  • 2014-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多