Struts2 jQuery autocompleter无法正常工作

时间:2016-08-08 13:31:25

标签: autocomplete struts2 dojo struts2-jquery struts2-jquery-plugin

目前我正在做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"/>

我在文本框中“未定义(多次 - 基于服务器端查询中的结果)”。

有人可以帮忙吗?提前谢谢。

enter image description here

1 个答案:

答案 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标记设置为您希望作为响应的列表属性名称。