1

目前我正在做struts升级任务(struts2.0到struts2.5)。我想用 struts-jquery 替换 struts dojo 标签。

在这里,将 struts-dojo 自动完成器替换为 struts-jQuery 自动完成器时,我遇到了一些问题。

从服务器获得以下响应:

  [
  {
    "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"/>

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

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

在此处输入图像描述

4

1 回答 1

0

我在评论中的建议将您引向错误的方向,这样<sj:autocompleter/>它应该可以正常工作而无需更改服务器响应。我搞砸了可用于此标签的各种选项。

<sj:autocompleter href="%{jsonAction}" listKey="partnerId" listValue="firstName" name="firstname"/>

如何获取标签元素的值?

这个自动完成器的技巧是,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您希望作为响应的列表属性名称设置标签。

于 2016-08-10T19:45:17.053 回答