我正在使用带有Struts2的Ajax jQuery插件jar。我使用Ajax select标签填充列表但列表没有填充。如果我使用<sj:autocompleter>
标签,它可以正常工作。这是我的代码
<sj:select name="countryId" list="countryList" listKey="id" listValue="name"
headerKey="" headerValue="--Select Country--"
onchange="document.forms[0].action='city_countryChange'; document.forms[0].submit(); return true;"
required="required"></sj:select>
<sj:select>
代码有什么问题?
答案 0 :(得分:0)
当您使用sj:autocompleter
并且您说它工作正常时,您使用了href
属性。 sj:select
href
属性也可用于填充由select
呈现的HTML sj:select
标记。每个标记的属性集略有不同,href
属性也与HTML select
标记不同。
两个标记都可以使用href
属性,您应该提供填充sj:select
标记的操作返回的JSON结果。但是,如果您使用autocomplete=true
属性,则sj:select
的行为与sj:autocompleter
相似,并生成input
代码而不是select
代码。您应该定义输出所需的HTML标记。
使用属性可以基本更改呈现的HTML。如果您将list
属性与sj:select
标记一起使用,并且不使用autocomplete
属性,则在执行结果时将呈现带select
的简单options
。它与使用序数s:select
相同。因此,您应该为list
属性值提供getter,如
public List<Country> getCountryList() {
return countryList;
}
Country
bean应包含id
和name
属性,因此OGNL也可以访问它。