struts2 jquery标签选择不加载数据

我试图使用标签在Struts2 jsp中呈现我的列表。

在同一个地方我也使用过标签

数据将在标记中填充,而标记中不会填充任何数据。

  • struts2-jquery-plugin ver:3.7.0
  • jQuery UI:1.8.2
  • struts2-json-plugin ver:2.3.16.3

这也用于:

  

正常使用struts2 选择标签,给我结果

  

但是在同一个jsp中,只是另一个div甚至没有提供任何内容,即使这里使用了相同的对象(List),使用了languageList ,如片段所示

    

根据建议编辑了问题。

我的意思是说动作类返回对象languageList但是jsp中的UI无法呈现一个,请从O / P屏幕检查快照以便更好地理解。

请帮我弄清楚这里有什么问题?

我试图在struts jQuery select上复制教程,如链接所示: http : //struts.jgeppert.com/struts2-jquery-showcase/index.action

Source :: JSP

         Double Combo       <script src="/jq/jquery-1.8.2.min.js" type="text/javascript"> <script src="/jq/functions.js" type="text/javascript">   
AJAX Form populated by a String List
Loading...

行动类:

 package com.action; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.struts2.convention.annotation.*; import com.opensymphony.xwork2.ActionSupport; @ParentPackage( value = "showcase") public class Sample extends ActionSupport{ private static final long serialVersionUID = -2223948287805083119L; private List languageList; private List languageObjList; private Map languageMap; @Actions({ @Action( value="/sample2", results={ @Result(name="success",type="json") }) }) public String execute() { languageList = new ArrayList(); languageObjList = new ArrayList(); languageMap = new HashMap(); languageList.add("Java"); languageList.add("PHP"); languageList.add("C++"); languageMap.put("J", "Java"); languageMap.put("P", "PHP"); languageMap.put("C", "C++"); languageObjList.add(new ListValue("J", "Java")); languageObjList.add(new ListValue("P", "PHP")); languageObjList.add(new ListValue("C", "C++")); return SUCCESS; } public String getJSON(){ return execute(); } public List getLanguageList() { return languageList; } public Map getLanguageMap() { return languageMap; } public List getLanguageObjList() { return languageObjList; } public class ListValue { private String myKey; private String myValue; public ListValue(String myKey, String myValue) { super(); this.myKey = myKey; this.myValue = myValue; } public String getMyKey() { return myKey; } public void setMyKey(String myKey) { this.myKey = myKey; } public String getMyValue() { return myValue; } public void setMyValue(String myValue) { this.myValue = myValue; } } } 

Action Sample2返回此json:

 {"JSON":"success","languageList":["Java","PHP","C++"],"languageMap":{"P":"PHP","C":"C++","J":"Java"},"languageObjList":[{"myKey":"J","myValue":"Java"},{"myKey":"P","myValue":"PHP"},{"myKey":"C","myValue":"C++"}]} 

解决了。

愿这对别人有所帮助,

我所要做的就是更改web.xml ,如下所示:

   struts2 /*   

之前我曾将filter设置为

   struts2 *.action   

因此struts2-jquery标签找不到相应的.js文件

解决方案:从*.action更改为/*因此,请务必检查web.xml是否存在经常被忽略的exception情况就像我的情况一样。

您不需要两次加载jQuery,不同的版本可能会相互冲突。 这段代码错了

   

如果您的操作返回JSON,则sj:select标记应该有效,但它使用旧的表示法。 将其更改为

   

检查jquery,json插件是否在类路径上并且taglibs工作。