我目前正在更改自动填充程序,它可以使用简单的列表来处理json,以便能够链接它们。
我从我的动作中定义了一个json输出(从我的struts.xml中提取):
<action name="listCompanies" class="web.action.SearchAction" method="getCompaniesAction">
<result type="json">
<param name="root">companies</param>
</result>
</action>
链接到代码(SearchAction的摘录):
public String getCompaniesAction() throws Exception{
if (term!=null && term.trim().length()>1) {
companies=new ArrayList<KeyValuePair>();
IServiceReferential serviceReferential = (IServiceReferential)getService(IServiceReferential.class);
List<ICompany> listDaoCompanies =
serviceReferential.getCompanies(getUserLoginSession(),term);
for (Iterator<ICompany> it = listDaoCompanies.iterator(); it.hasNext();){
ICompany company = (ICompany) it.next();
companies.add(new KeyValuePair(company.getId().toString(), company.getCompanyname()));
}
}
return SUCCESS;
}
听起来很棒:当我问json动作时它会起作用并返回: [{ “键”: “1”, “值”: “器Comp1”},{ “键”: “2”, “值”: “器Comp2”}]
jsp中的autocompleter标记如下所示:
<s:url id="url_companies" action="listCompanies" />
<sj:autocompleter size="1" name="selectCompany" href="%{url_companies}" list="companies" listKey="key" listValue="value" delay="100" loadMinimumCount="2" onSelectTopics="/autoCompanyChange"/>
它很好地解决了json动作,但文本框从未建议我完成。
感谢您的帮助。
答案 0 :(得分:0)
您需要从autocompleter
中删除list =“companies”属性