0

我有一个包含 struts2-jquery-plugin 选择标签的 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 中,对应于 action providerList,如果我将结果类型指定为调度程序,那么它将控制权交给 jsp。我希望只是让列表 pList 到达选择标签的下拉列表。

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

4

1 回答 1

1

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

为了使sj:select标签起作用,您必须从sj:select

 listKey="myKey"
 listValue="myValue"

因为,您从操作发送的是一个字符串列表,但在 JSP 中,由于上述两个属性,它需要一个映射或一个 bean。

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

于 2013-10-20T20:56:02.343 回答