Struts2整合jQuery和JSON进行简单的异步数据交换入门教程

最近做项目的时候,需要用到JSON和jQuery进行异步数据交换

在网上查了好久,搞了一天多才写出来,所以拿出来和大家分享一下

好了,废话到此为止


1. 搭建Struts2运行环境

引入Struts2所需的jar包,另外还要引入一个JSON插件包:struts-2.3.4.1/lib/(前面是位置)struts2-json-plugin-2.3.4.1.jar


2. 编写web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
	<display-name></display-name>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>

	<!-- Struts2核心Filter -->
	<filter>
		<filter-name>struts</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

</web-app>

3. struts.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>
	<!-- 设为开发模式,是出错提示信息更详细 -->
	<constant name="struts.devMode" value="true"></constant>
	<!-- 当配置文件修改时,自动重新加载该配置文件 -->
	<constant name="struts.configuration.xml.reload" value="true"></constant>
	
	<!-- Struts2使用JSON和jQuery进行数据交互 -->
	<!--
             这里要注意的是:1. package必须继承json-default 2. result的类型必须是json
        -->
        <package name="json" namespace="/json" extends="json-default">
		<action name="JsonAction" class="org.action.JsonAction">
			<result type="json"></result>
		</action>
	</package>
	
</struts>

4. Person.java
public class Person{
      // 姓名
      private String name;
      // 密码
      private String password; 
      
      //getter/setter略
}
5. JsonAction.java
package org.action;

import java.util.ArrayList;
import java.util.List;
import org.model.Person;

import com.opensymphony.xwork2.ActionSupport;

public class JsonAction extends ActionSupport
{
	//Person对象
	private Person person;
	//爱好
	private String hobby;
	//集合测试
	private List<String> dragons = new ArrayList<String>();
	
	@Override
	public String execute() throws Exception
	{
		//为Action的属性赋值,方便在JSP页面获取值
		this.hobby = "行侠仗义";
		this.dragons.add("jQuery");
		this.dragons.add("Json");
		this.person.setName("萧峰");
		this.person.setPassword("123");
		
		System.out.println("执行execute()方法");
		
		return super.execute();
	}
        //getter/setter略
}
6. index.jsp(记得引入jQuery库)
        
        <!-- import jQuery library -->
	<script type="text/javascript" src="jQuery/jquery-1.9.0.js"></script>
	
	<script type="text/javascript">
		$(document).ready(function(e) {
			$("button#btn").click(function(e) {
                                 //通过data可以直接访问Action中的属性
                                 $.post("json/JsonAction", function(data){
					alert("姓名:" + data.person.name +
						"\n密码:" + data.person.password +
						"\n爱好:" + data.hobby +
						"\n集合:" + data.dragons
					);
				});
			});
		});
	</script>
  
  <body>
    <button type="button" id="btn">JSON</button>
  </body>

这个程序不是很难,解释我都写在代码里了,这只是初级的使用方法,不过可以满足进行简单的数据交换了

我的理解是:使用JSON进行数据交换其实就是读取Action类里可序列化的属性(这个属性必须要有getter方法)

呵呵,就这样了

如果有错的,请大家放心指正,共同进步。


更详细的内容可以查看下面链接

Struts2配置JSON的更多细节

JSON的简介



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值