天天看點

struts2學習之二-json插件

struts2學習之一:[url]http://arthur2014.iteye.com/admin/blogs/2162974[/url]

struts2學習之三-spring注解:[url]http://arthur2014.iteye.com/admin/blogs/2162996[/url]

struts2學習之四-struts2注解:[url]http://arthur2014.iteye.com/admin/blogs/2163348[/url]

增加的jar包是struts2-json-plugin

1、修改struts.xml檔案,package不再繼承struts-default,而要繼承json-default,修改如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	  "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
	  "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<package name="test" extends="json-default" namespace="/a">
		<interceptors>
			<interceptor-stack name="paramStack">
				<interceptor-ref name="json" /><!-- 參數以json格式傳輸 -->
				<interceptor-ref name="defaultStack" />
			</interceptor-stack>
		</interceptors>
		<default-interceptor-ref name="paramStack" />

		<global-results>
			<result name="json" type="json">
				<!-- false表示父類的屬性在在json中傳回 -->
				<param name="ignoreHierarchy">false</param>
			</result>
		</global-results>
	</package>
</struts>
           

2、抽象action父類:

3、實作類UserJsonAction,以後的注解練習都會基于這個類寫:

User.java

4、編寫result.jsp,以ajax方式擷取資料:

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>

<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
<script type="text/javascript" src="<%=path%>/js/jquery-1.8.0.min.js"></script>
</head>
<body>
	世界,你好.
	<br>
</body>

<script type="text/javascript">
	$(document).ready(function() {
		$.ajax({
			type : "post",
			url : "userJson.action?name=tom",
			dataType : "json",
			success : function(data) {
				alert(data.data.name);
			},
			error : function(XMLHttpRequest, textStatus, errorThrown) {
				alert(errorThrown);
			}
		});
	});
</script>
</html>
           

5、在struts.xml檔案中添加如下代碼:

<action name="userJson" class="com.haochen.action.UserJsonAction"></action>
           

6、釋出,通路http://localhost:8080/struts2demo/a/helloworld.action,提示“tom”表示成功。