工作(加载列表):
<s:url id="countrylist" action="lstcountryaction" />
<sj:autocompleter list="lstcountry"
listKey="idcountry" listValue="countryname" label="Country"
href="%{countrylist}" name="idcountry" />
不工作(没有加载任何内容。不调用操作):
<s:url id="countrylist" action="lstcountryaction" />
<sj:autocompleter selectBox="true" list="lstcountry"
listKey="idcountry" listValue="countryname" label="Country"
href="%{countrylist}" name="idcountry" />
唯一的区别是添加了selectBox
属性。我错过了什么?我使用的是Struts 2.3.15和Struts 2 JQuery Plugin 3.6.1(这两个版本都是最近的版本)。
谢谢你!
2条答案
按热度按时间2skhul331#
启用了
selectBox=true
的Struts2 jQuery<sj:autocompleter>
小部件不应该远程加载数据。换句话说,属性href="%{countrylist}"
是选择框不工作的罪魁祸首。这两个属性是相互排斥的。您必须在两个选项之间进行选择,要么使用autocompleter
作为带有远程数据的输入框,要么作为选择框但不远程加载数据,因为它是作为普通的select
标记从valueStack
加载的。您可以使用
selectBoxIcon="true"
来补充选择框,以使小部件平滑显示,或者在头标记中使用相应的jQuery主题。试试
来自struts2 jQuery插件wiki页面的示例。
mbzjlibv2#
+1因为我看到你有already posted on the relative Google Group.但是,如果事情没有改变,同时,根据这个(很老,但仍然开放JIRA)插件作者的评论:
selectBox的autocompleter处理静态列表。在您的用例中,您应该使用带有autocomplete=“true”的
<sj:select />
标记。然后,将
emptyOption
和autocomplete
都设置为true
的<sj:select />
可以替代您正在寻找的动态选择框<sj:autocompleter />
。请随意运行this example too,它似乎可以开箱即用。