[英]Simple JSON example using Struts 2.2.x?
我无法在Struts 2.2.1.1中获得JSON结果。
有没有人有一个简单的工作示例,该示例使用Struts 2.2.1.1将JSON结果返回到JSP,并准备作为动态Web项目在Eclipse中运行?
请包括struts.xml,操作类和JSP代码。 另外,请注意依赖项。 谢谢。
这是使用Struts 2 jQuery插件创建简单JSON示例的方法。
Echo.java
, JsonSample.java
和ListValue.java
导入测试包,并通过快速修复将代码移动到包中。 Echo.java
和JsonSample.java
的类批注更改为@ ParentPackage(value = "test")
创建一个struts.xml
文件并添加以下XML:
<struts> <constant name="struts.devMode" value="true" /> <constant name="struts.convention.action.packages" value="test" /> <package name="test" extends="json-default” namespace="/"> </package> </struts>
创建一个index.jsp文件并插入以下代码:
<s:form id="form2" action="echo" theme="xhtml"> <s:url id="remoteurl" action="jsonsample" /> <sj:checkboxlist href="%{remoteurl}" id=“remoteCheckboxlist” name="echo" list="languageList" label="Language" /> <sj:submit targets="formResult" value="AJAX Submit" indicator=“indicator” button="true"/> </s:form>
运行示例。
试试这个,将在jsonplugin-0.32.jar中帮助您在Struts 2.0.14中使用。
struts.xml中:
<struts>
<package name="example" extends="json-default">
<action name="HelloWorld" class="example.HelloWorld" >
<result type="json" />
</action>
<action name="HelloWorld1" class="example.HelloWorld" >
<result name="success" >example/HelloWorld.jsp</result>
</action>
</package>
</struts>
动作类Helloworld.java:
package prabhakar;
import glb.DB;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* Prabhakar
*/
public class HelloWorld {
private List<StateMaster> stateList= new ArrayList<StateMaster>();
private List<RegnMaster> regnList= new ArrayList<StateMaster>();
private Integer stateId;
public Integer getStateId()
{
return this.stateId;
}
public void setStateId(Integer stateId)
{
this.stateId=stateId;
}
public List<StateMaster> getStateList() {
return stateList;
}
public void setStateList(List<StateMaster> stateList) {
this.stateList = stateList;
}
public void setRegnList(List<RegnMaster> regnList) {
this.regnList = regnList;
}
public List<RegnMaster> getRegnList() {
return regnList;
}
public String execute() throws Exception {
stateList=DB.getStateData()//
if(stateId !=null)
{
regnList=DB.getRegnByStateId(stateId);
}
//setMessage(getText(MESSAGE));
return "success";
}
/**
* Provide default valuie for Message property.
*/
}
您可以直接调用HelloWorld.action来查看JSON数据,也可以将JSON数据绑定到下面的表单元素。
JSP页面HelloWorld.jsp:
/*
Prabhakar
*/
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<script>
<%@include file="../js/jquery-1.7.1.min.js"%>
</script>
<html>
<!-- JavaScript Plugins -->
<script>
function getLoad(){
var stateId = $('#state').val();
$.getJSON('HelloWorld.action', {'stateId': stateId},
function(data) {
var divisionList = (data.regnList);
var options = $("#regn");
options.find('option')
.remove()
.end();
options.append($("<option />").val("-1").text("--Select--"));
$.each(divisionList, function() {
options.append($("<option />").val(this.regnId).text(this.regnName));
});
}
);}
</script>
<!-- jQuery-UI Dependent Scripts -->
<body>
State List <s:select name="stateId" list="stateList" id="state" listKey="stateId" onchange="getLoad()" listValue="stateName" headerKey="0" headerValue="--select--" />
Regn List <s:select name="regnId" list="regnList" listKey="regnId" id="regn" listValue="regnName" headerKey="0" headerValue="--select--" />
</body>
</html>
快乐的编码:)
必须查看 :struts2-xxx-all.zip /apps/struts2-showcase-2.2.1.war
让Json与struts2一起工作非常简单。
为了这,
您需要将struts-json插件* (jsonplugin-0.32.jar) *添加到类路径。
您的struts.xml文件应扩展为json-default
<package name="base" namespace="/" extends="json-default">
您的动作结果就是这样。
<result type="json"><param name="root">jsonData</param></result>
在动作类内部,将json声明为
private LinkedHashMap<K, V> jsonData new LinkedHashMap<k, V>();
然后将结果列表添加到json这样
jsonData.put("result", anyList or object);
那就是我们要做的。 然后,我们可以使用javascript访问结果 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.