我使用autocompleter
使用struts2 jquery plugin
代码进行了一段时间的努力。
我已经能够以一种简单的方式使用它,只是从数据库中检索String
列表,但现在我想知道是否可以从我的操作中获取HashMap
并显示用户< strong>仅限密钥。
来自该操作的响应是成功的,我可以在我的chrome dev工具上看到该操作返回的JSON
包含我的Map
。但是,自动填充程序显示值而不是我真正想要的密钥,因为我正在尝试向用户列出一些地址并将其用作Map
上的密钥,其值只是每个地址的标识符。
这个例子应该说明Map
的样子。当用户写'Ho'时,这是我从动作调用中得到的响应:
{"addressesList":{"Home":"-20","Hotel":"-4","Hooters":"-2"}}
然而,当用户开始在自动完成器中写入时,它会一直显示值(-20,-4,-2),这些值不代表用户。
我知道我可以改变我的方式并将标识符存储为键,将地址的名称存储为值,但我对此很好奇,并且真的想学习如何强制我的autocompleter标记显示键而不是Map
值。这种简单的方法不适合我。
我相信这个问题与JSTL / OGNL有关,而不是Struts2标签,我发现它很有趣,因为我找不到任何关于如何做这个的例子。
<sj:autocompleter
id="addresses"
name="selectedAddress"
list="addressesList"
href="%{findAddresses}"
delay="50"
loadMinimumCount="2"/>
addressesList
是我行动中的HashMap
。
尝试了使用listValue
和listKey
属性的无限组合,例如设置listKey = addressesList.keySet()
等类似的东西,但遗憾的是没有成功。