目前我正在做struts up-gradation任务(struts2.0到struts2.5)。我想用struts-jquery替换struts dojo标签。
在struts-jQuery autocompleter中替换struts-dojo autocompleter时,我遇到了一些问题。
从服务器获得以下响应:
[
{
"firstName": "Bulwark Technologies LLC",
"partnerId": 925
},
{
"firstName": "Bulwark Technologies LLC1",
"partnerId": 926
},
{
"firstName": "Bulwark Technologies LLC2",
"partnerId": 927
}
]
在客户端显示我正在使用Struts2-jquery-autocompleter -
<sj:autocompleter href="%{urlpartnerList}" list="%{partnerNameListBeanStruts2}" listValue="firstName" listKey="partnerId"/>
我在文本框中“未定义(多次 - 基于服务器端查询中的结果)”。
有人可以帮忙吗?提前谢谢。
答案 0 :(得分:0)
我在评论中的建议会导致您走错方向,使用此<sj:autocompleter/>
它应该可以正常运行而不会更改服务器响应。我搞砸了这个标签可用的各种选项。
<sj:autocompleter href="%{jsonAction}" listKey="partnerId" listValue="firstName" name="firstname"/>
我如何获得label元素的值?
这个自动填充器的技巧是,listValue
在可见文本字段中显示为选择,但listKey
在隐藏字段中用作值。此隐藏字段将用于将值发送回服务器。这也应该回答你的问题:
<sj:autocompleter/>
将创建以下html代码:
<input type="hidden" name="firstname" value="HERE_IT_WILL_PUT_THE_LIST_KEY"/>
<input type="text" name="firstname_widget" value="HERE_IT_WILL_PUT_THE_LIST_VALUE"/>
因此,您只需将listKey
标记设置为您希望作为响应的列表属性名称。