Struts2异步获取json数据一个简单的demo
这个demo由ideal写的,是一个mvn项目,下面是目录结构
ajaxtest.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<script type='text/javascript' src='js/jquery-1.12.3.min.js'></script>
<script>
function test() {
$.ajax({
type:"post",
url:"test.action",
dataType:"json",
success:function(data){
var d = eval("("+data+")");
$("#name").text(""+d.name+"");
$("#sex").text(""+d.sex+"");
$("#age").text(""+d.age+"");
}
})
}
</script>
<html>
<head>
<title>Struts2异步请求</title>
</head>
<body>
<a href="#" onclick="test()">获取数据</a><br>
名字:<span id="name"></span><br>
性别:<span id="sex"></span><br>
年龄:<span id="age"></span><br>
</body>
</html>
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
<!--创建一个default包,继承自Struts2的struts-default包-->
<package name="default" namespace="/" extends="struts-default,json-default">
<action name="test" class="cn.wgb.action.AjaxAction" method="ajax">
<result name="success"></result>
<result type="json">
<param name="root">result</param>
</result>
</action>
</package>
</struts>
AjaxAction
package cn.wgb.action;
import com.opensymphony.xwork2.ActionSupport;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
public class AjaxAction extends ActionSupport {
private String result;
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
public String ajax(){
Map<String,Object> map = new HashMap<String,Object>();
//存点数据,在jsp展示用
map.put("name","小明");
map.put("sex","180cm");
map.put("age",18);
JSONObject json =new JSONObject(map); //转json
result = json.toString();
return SUCCESS;
}
}
pom.xml
<!--Struts2和JSON需要的依赖包如下-->
<!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-core -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.18</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils -->
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-collections/commons-collections -->
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-lang/commons-lang -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/net.sf.ezmorph/ezmorph -->
<dependency>
<groupId>net.sf.ezmorph</groupId>
<artifactId>ezmorph</artifactId>
<version>1.0.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-json-plugin -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-json-plugin</artifactId>
<version>2.5.18</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.json/json -->
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180813</version>
</dependency>
web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<filter>
<filter-name>struts2</filter-name>
<!--如果Struts2版本是2.3以下版本->
<!--org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter-->
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>ajaxtest.jsp</welcome-file>
</welcome-file-list>
</web-app>
测试页面: