第一种:使用配置文件
1>我们新建一个配置文件struts-ajax.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="ajax-json-plugin" extends="json-default"> <action name="employeeJson" class="com.kaishengit.action.AjaxAction"> <result name="success" type="json"> <param name="root">employeeList</param> <param name="noCache">true</param> <param name="enableGZIP">true</param> <param name="excludeNullProperties">true</param> </result> </action> </package> </struts>
2>我们将此配置文件导入主配置文件struts.xml中
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd"> <struts> <include file="struts-ajax.xml"></include> <package name="myPackage" extends="struts-default"> </package> </struts>
3>客户端index.jsp,我使用的是Jquery结合Json
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>json</title> </head> <body> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $.get("employeeJson.action",function(json){ alert(json); }); }); </script> </body> </html>
4>服务端代码
package com.kaishengit.action; import java.util.ArrayList; import java.util.List; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Result; import org.springframework.beans.factory.annotation.Autowired; import com.kaishengit.service.EmployeeService; public class AjaxAction { private EmployeeService employeeService; private List<Employee> employeeList; public String execute(){ employeeList = employeeService.findAllByJson(); return "success"; } public List<Employee> getEmployeeList() { return employeeList; } public void setEmployeeList(List<Employee> employeeList) { this.employeeList = employeeList; } @Autowired public void setEmployeeService(EmployeeService employeeService) { this.employeeService = employeeService; } }
这样就ok啦
第二种:使用annotation(注解)
1>我们新建一个配置文件struts-ajax.xml,把其中Action节点去除
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="ajax-json-plugin" extends="json-default"/> </struts>
2>我们将此配置文件导入主配置文件struts.xml中(跟第一种一样)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd"> <struts> <include file="struts-ajax.xml"></include> <package name="myPackage" extends="struts-default"> </package> </struts>
3>客户端index.jsp,我使用的是Jquery结合Json(跟第一种一样)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>json</title> </head> <body> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $.get("employeeJson.action",function(json){ alert(json); }); }); </script> </body> </html>
4>服务端代码,使用annotation(注解)
package com.kaishengit.action; import java.util.ArrayList; import java.util.List; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.springframework.beans.factory.annotation.Autowired; import com.kaishengit.service.EmployeeService; @ParentPackage(value="ajax-json-plugin") public class AjaxAction { private EmployeeService employeeService; private List<Employee> employeeList; @Action(value="employeeJson",results={@Result(name="success",params={"root","employeeList","noCache","true","enableGZIP","true","excludeNullProperties","true"},type="json")}) public String execute(){ employeeList = employeeService.findAllByJson(); return "success"; } public List<Employee> getEmployeeList() { return employeeList; } public void setEmployeeList(List<Employee> employeeList) { this.employeeList = employeeList; } @Autowired public void setEmployeeService(EmployeeService employeeService) { this.employeeService = employeeService; } }
ok!