【发布时间】:2014-07-11 06:38:54
【问题描述】:
我的jsp中有Struts2 select标签:
<s:iterator value="data.members" status="rowstatus">
<s:select id="Ct%{#rowstatus.index}" name="data.members[%{#rowstatus.index}].extData.carrierKey" headerKey="-1" headerValue="" list="carrier"
onchange="javascript:autoTab(event,this,%{#rowstatus.index},false);">
</s:select>
</s:iterator
现在这个carrier 是一个后端的地图,它被填充到这个选择标签中。载体填充如下:
carrier = new HashMap<Integer, String>();
carrier.put(1,"LIC");
carrier.put(2, "Bajaj");
现在假设显示 jsp。我在选择标签中选择 LIC 并提交表单。假设发生了一些验证错误。我调试了应用程序,发现action类中变量"data.members[%{#rowstatus.index}].extData.carrierKey"的值为1。但是jsp上没有填充它的值。
我不明白,为什么没有填充值,如果 data.members[%{#rowstatus.index}].extData.carrierKey 设置了值。据我说,如果它的值为 1,那么选择标签必须显示 LIC。
【问题讨论】:
-
迭代器标签不是必须的,不用它也可以试试。此外,您还不清楚预选值是什么意思。
-
name="data.members[%{#rowstatus.index}].extData.carrierKey"想要达到什么目的?...extData.carrierKey是您希望默认选择的值吗? -
对不起。 javascript 上有一些东西在将其填充到标签中之前清除了该值。好的,谢谢大家的努力。