首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有选择框的Struts2 jQuery自动完成器

带有选择框的Struts2 jQuery自动完成器
EN

Stack Overflow用户
提问于 2013-01-04 08:56:27
回答 3查看 5.2K关注 0票数 3

我在Struts 2应用程序中使用了Struts2 jQuery autocompleter

这是我的代码:

JSP:

代码语言:javascript
运行
复制
 <s:form id="frm_demo" theme="simple" action="ManagersAutoCompleter1">
        <s:url var="remoteurl" action="test" />
    <sj:autocompleter href="%{remoteurl}" id="echo3" name="echo"
        list="itemList" listKey="id" listValue="name" emptyOption="true"
        headerKey="-1" headerValue="Please Select a Language" selectBox="true" />

        <s:submit value="submit" />
    </s:form>

Struts.xml**:**

代码语言:javascript
运行
复制
<action name="test" class="test.TestAction" method="populate">
  <result type="json">
  </result>
</action>

操作类:

代码语言:javascript
运行
复制
 public String populate() throws Exception {

        itemList = new ArrayList<ListValue>();
        itemList.add(new ListValue("Php", "Php"));
        itemList.add(new ListValue("Java", "Java"));
        itemList.add(new ListValue("Mysl", "Mysl"));
        return SUCCESS;
    } //getter setter for itemList

列表类:

代码语言:javascript
运行
复制
public class ListValue {
    private String id;
    private String name;

    public ListValue(String id, String name) {
        this.id = id;
        this.name = name;
    } //getter setter methods

但是这个Struts2 jQuery autocompleter不起作用。它没有填充任何值。

EN

Stack Overflow用户

回答已采纳

发布于 2013-01-06 19:44:42

做这个

代码语言:javascript
运行
复制
<s:url id="remoteurl" action="test"/>
<sj:select 
     id="customersjsonlstid" 
     name="echo"
     label="Handle a List"
     href="%{remoteurl}" 
     list="itemList"
     listValue="name" 
     listKey="id" 
     autocomplete="true"  
     loadMinimumCount="2" 
     id="echo3"/>

而不是这个

代码语言:javascript
运行
复制
<sj:autocompleter href="%{remoteurl}" id="echo3" name="echo"
list="itemList" listKey="id" listValue="name" emptyOption="true"
headerKey="-1" headerValue="Please Select a Language" selectBox="true" />

并确保您正在从操作类返回列表。要检查这一点,请使用IDE调试器或System.out.print等进行检查。

代码语言:javascript
运行
复制
ex...


    -------------
    ------------
    itemList.add(new ListValue("Mysl", "Mysl") );
    System.out.println("Size of my list="+itemList.size());
    return SUCCESS;
}

还应该在操作类中定义getter &getter。

代码语言:javascript
运行
复制
private List itemList; 
    public List getItemList() {
    return itemList;
} 

public void setItemList(List itemList) {
    this.itemList = itemList;
}
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14153943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档