struts2使用ajax实现页面和action之间通过json数据交互

来源:互联网 发布:锐捷云课堂安装软件 编辑:程序博客网 时间:2024/05/29 15:11

要在struts2中使用json数据交互,需要导入以下包


当然,struts2应用核心包也要导入


一.   先看jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script type="text/javascript" src="js/jquery-3.0.0.js"></script><script type="text/javascript">$(document).ready(function(){$("#btn1").click(function () {$.post("simpleObect",{name:"cary",sex:"男"},function(data){var user=eval("("+data+")");//alert(user.name);$("#text").html(user.name+':'+user.age);},"json");});$("#btn2").click(function () {$.post("simpleList",{name:"frank",sex:"男"},function(data){var users=eval("("+data+")");//alert(user.name);$("#text").empty();$.each(users,function(index,user){var text=user.name+"--"+user.age+"<br>";$("#text").append(text);});},"json");});});</script></head><body><button id="btn1"  type="button" >获取简单json数据</button><button id="btn2"  type="button" >获取集合json数据</button><div id="text"></div></body></html>
jsp页面中设置了两个提交按钮,分别演示处理简单json数据和集合类型的json数据的回调

注意:action写回jsp页面的json数据需要通过jquery的eval函数解析才能正确读出
二. 相应请求的action的代码

package com.hwua.action;import java.util.ArrayList;import com.google.gson.Gson;import com.hwua.entity.User;public class AjaxAction {private User user;private String msg;private String name;private String sex;public User getUser() {return user;}public void setUser(User user) {this.user = user;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}//回传简单json数据public String simpleObect() {System.out.println(name+"--"+sex);user = new User("张三", 20);Gson gs = new Gson();msg = gs.toJson(user);return "success";}//回传集合类型的json数据public String simpleList() {ArrayList<User> list=new ArrayList<>();//System.out.println(name+"--"+sex);user = new User("张三", 20);list.add(user);user = new User("李四", 20);list.add(user);user = new User("王五", 20);list.add(user);Gson gs = new Gson();msg = gs.toJson(list);return "success";}}
三. (重点)struts.xml文件的配置

1)package标签配置

<package name="default" namespace="/" extends="struts-default,json-default">必须要继承json-default,如果不继承,下面action标签中的result标签的属性type无json类型
2)action标签配置

<action name="simpleObect" class="com.hwua.action.AjaxAction"method="simpleObect"><result name="success" type="json"><param name="root">msg</param></result></action><action name="simpleList" class="com.hwua.action.AjaxAction"method="simpleList"><result name="success" type="json"><param name="root">msg</param>  <!-- <span style="font-family: Arial, Helvetica, sans-serif;">name随便起,msg为返回的json数据,要与action中的属性对象,并且action中的msg属性要提供getter和setter方法 </span><span style="font-family: Arial, Helvetica, sans-serif;">--></span><span style="font-family: Arial, Helvetica, sans-serif;"> </span></result></action>
做好以上配置之后,就能在jsp页面的回调方法中获取的服务端写回来的json数据



0 0
原创粉丝点击