我正在使用Map来填充Struts2标记<s:select >
,观察到当表单有多个提交时,在列表末尾会出现一个空白行。
例如,如果Map有2个键值对,则显示3个记录,并在底部附加一个空白记录(不在顶部 - 默认情况下)。
Item 1
Item 2
<-blank->
<s:select id="bankAccountId"
name="accountBean.recordDetails.BankAcct.bankAcctId" label=""
headerKey="" headerValue="" list="accountBean.bankAccountMap"
listKey="key" listValue="value" />
<select name="accountBean.recordDetails.BankAcct.bankAcctId">
<option value=""></option>
<option value="51089">BANK XXXX123</option>
</select>
<select name="accountBean.recordDetails.BankAcct.bankAcctId" id="bankAccountId"> <option value="-1" selected="selected">Default values</option> <option value="77746">Details XXXXXX2246</option> <option value="-1" selected="selected"> </option> <---this default value gets appened in the end... </select>
当我使用s时:选择属性emptyOption="true"
会出现相同的问题,但当emptyOption="false"
顶部元素变为非空(我不想要)时。
重新提交
如果在重新提交默认值/空值之前选择了<option value="" selected="selected"> </option>
extral选项。
这可以通过javascript或jQuery进行处理吗?
答案 0 :(得分:2)
事情看来,我认为问题在于您在提交后将默认值添加到地图中,因此在下一次呈现页面时,它已经包含该项目。通常,您应该使用prepare
方法重新填充地图,这样-1
密钥就不会出现在地图中。