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

来源:互联网 发布:人类起源海洋 知乎 编辑:程序博客网 时间:2024/06/08 19:45

最近做项目的时候,需要用到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>();@Overridepublic 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的简介



原创粉丝点击