使用struts2 jquery插件填充选择标记

时间:2013-10-19 20:14:33

标签: java ajax jsp struts2 struts2-jquery

我有一个包含struts2-jquery-plugin select标记的jsp,它通过发送ajax请求动态加载其数据,如下所示:

<s:url var="remoteurl" action="providerList"/>
<sj:select href="%{remoteurl}" id="provider" name="language"
                            list="pList"
                            listKey="myKey"
                            listValue="myValue"
                            emptyOption="true"
                            headerKey="-1"
                            headerValue="Select" label="Provider"/>

现在,当发出ajax请求时,控制转到操作代码,如下所示:

ArrayList<String> pList=new ArrayList<String>(); 
public ArrayList<String> getpList() {
    return pList;
}
public void setpList(ArrayList<String> pList) {
    this.pList = pList;
}
public String providerList() {
    pList.add("ASC");
    pList.add("asas");
    pList.add("asasasas");
    return "returnedList";
}

在我的struts.xml中,与actiion providerList相对应,如果我将结果类型指定为调度程序,则它将控制权转移到jsp。我希望只是让列表pList到达选择标记的下拉列表。

现在的问题是我希望用这个pList值填充我的select标签。我应该如何在struts.xml文件中配置此providerList操作。或者我也需要对我的动作方法进行任何更改,包括返回类型或任何内容。据我所知,我可以使用返回类型作为json。除了json之外还有其他解决方案。

1 个答案:

答案 0 :(得分:1)

首先,如果您依赖该标签,则除了JSON之外没有其他解决方案。

要使sj:select代码生效,您必须从sj:select

中删除以下内容
 listKey="myKey"
 listValue="myValue"

因为,你从行动中发送的是一个字符串列表,但是由于上述两个属性,它在JSP中期望一个地图或一个bean。

在struts.xml中,您必须将结果类型配置为json,为此,我们必须在项目中包含struts2-json-plugin