Struts2+JQuery+JSON集成

天使不会老 贡献于2012-05-10

作者 venus  创建于2012-04-23 05:30:00   修改者venus  修改于2012-04-23 06:18:00字数5411

文档摘要:各位搞java的兄弟们,小弟搞了一个上午加中午,终于搞出用ajax传输json数据了,下面完完全全的将我遇到困难和配置给贴出来
关键词:

Struts2+JQuery+JSON集成 各位搞java的兄弟们,小弟搞了一个上午加中午,终于搞出用ajax传输json数据了,下面完完全全的将我遇到困难和配置给贴出来!! 结合http://blog.csdn.net/fengda2870/article/details/4052527这篇文章,慢慢的搞出来 点击“点我看看”按钮后,用jquery取得venus和password,用ajax传输到后台,处理,将处理后的数据,返回并显示在页面上 1、新建web工程 2、导入strust2的jar包(易错) 3、导入struts2里相关的json的包(2个) 4、要下载个处理json的库,(网上很多) http://www.json.org/ json的官网(里面有这些链接) 推荐google的gson和json发明者自己写的类(我这里用的是json发明者自己的写的类) 5、工程目录结构(红色框内重点!) 6、web.xml里写 7、struts2.xml里写(!!!!很容易出错,注意) 8、Action类 package com.zyn.action; import java.util.ArrayList; import java.util.List; import org.apache.struts2.ServletActionContext; import org.json.JSONObject; import com.opensymphony.xwork2.ActionSupport; import com.zyn.pojo.User; public class Test extends ActionSupport { private User user; private String result; public String getResult(){ return result; } public void setResult(String result){ this.result = result; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } public static void main(String[] args) { List list = new ArrayList(); for (String string : list) { System.out.println(string); } System.out.println("---------------"); } public String test() { System.out.println("---------"); String[] checkbox = ServletActionContext.getRequest().getParameterValues("checkbox"); for (String string : checkbox) { System.out.println(string); } return SUCCESS; } public String mytest1() { System.out.println(user.getName()); System.out.println(user.getPassword()); //将要返回的user实体对象进行json处理 JSONObject jo = new JSONObject(user); //打印一下,格式如下 //{"name":"风达","age":23} System.out.println(jo); //调用json对象的toString方法转换为字符串然后赋值给result result = jo.toString(); return SUCCESS; } } 9、user类 package com.zyn.pojo; public class User { private String name; private String password; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } 10、相应的jsp页面(页面要用到jquery,需要去网上下载)


11、测试: 点击后: 期间碰到个问题! HTTP Status 404 - There is no Action mapped for action name 网上搜了一大堆,但还是 不对,struts2.xml里没有写错, 解决:变了下action的名字,相应的修改struts2.xml的action名字,就可以了,奇怪啊 下面是那篇文章的内容: Struts2+JQuery+JSON集成 细节部分我就不多讲了,因为我也不会,就讲讲我是如何调试出来我的第一个JSON使用的吧 采用的框架有:Struts2 、 JQuery 、 JSON 按着步骤来吧:  1.新建一个Web工程 导入包列表:  目录结构如图:  2.建立实体类User package model; public class User  private String name; private int age;  //省略相应的get和set方法  3.建立Action JsonAction public class JsonAction extends ActionSupport{ private static final long serialVersionUID =  7044325217725864312L; private User user; //用于记录返回结果 private String result; //省略相应的get和set方法 @SuppressWarnings("static-access") public String execute() throws Exception { //将要返回的user实体对象进行json处理 JSONObject jo = JSONObject.fromObject(this.user); //打印一下,格式如下 //{"name":"风达","age":23} System.out.println(jo); //调用json对象的toString方法转换为字符串然后赋值给result this.result = jo.toString(); return this.SUCCESS; } }  4.建立struts.xml文件 result  5.编写index.jsp文件 <%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> "> My JSP 'index.jsp' starting page
 6.在WebRoot目录下建立js文件件,将jquery.js文件放到文件夹下,然后再建立文件index.js $(document).ready(function() { // 直接把onclick事件写在了JS中 $("button").click(function() { // 序列化表单的值 var params = $("input").serialize(); $.ajax({ // 后台处理程序 url : "jsonAction.action", // 数据发送方式 type : "post", // 接受数据格式 dataType : "json", // 要传递的数据 data : params, // 回传函数 success : update_page }); }); }); function update_page(result) {  var json = eval( "("+result+")" ); var str = "姓名:" + json.name + ""; str += "年龄:"  + json.age + ""; $("#result").html(str); }  7.运行前效果: 要的是效果,布局就不整了 运行后效果: 网上相关的信息太少了,很多Struts2+JQuery+JSON的教程,点开链接之后都是那几篇文章转了又转,遇到问题真的很想找到有用的信息,或许是我太笨了,找不到,或许就是网上相关的信息就很少。这个实例很简单是不是,但是为了调试出这个程序,我费了一天的时间。 上面的实例成功了,但是问题又出来了 视图类型仅仅设置了json 那么输入校验出错的时候怎么显示?

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ] 1 人已下载

下载文档