在Struts 2中使用JSON插件

JSON插件提供了一种名为json的ResultType,一旦为某个Action指定了一个类型为json的Result,则该Result无需映射到任何视图资源。因为JSON插件会负责将Action里的状态信息序列化成JSON格式的数据,并将该数据返回给客户端页面的JavaScript.

简单地说,JSON插件允许我们在JavaScript中异步调用Action,而且Action不再需要使用视图资源来显示该Action里的状态信息,而是由JSON插件负责将Action里的状态信息返回给调用页面——通过这种方式,就可以完成Ajax交互。

Struts2提供了一种可插拔方式来管理插件,安装Struts2的JSON插件与安装普通插件并没有太大的区别,一样只需要将Struts2插件的JAR文件复制到Web应用的WEB-INF/lib路径下即可。

安装JSON插件按如下步骤进行:

(1)登陆http://code.google.com/p/jsonplugin/downloads/list站点,下载Struts2的JSON插件的最新版本,当前最新版本是0.7,我们可以下载该版本的JSON插件。

(2)将下载到的jsonplugin-0.7.jar文件复制到Web应用的WEB-INF路径下,即可完成JSON插件的安装。

实现Actio逻辑

假设wo,en输入页面中包含了三个表单域,这三个表单域对于三个请求参数,因此应该使用Action来封装这三个请求参数。三个表单域的name分别为field1、field2和field3.

处理该请求的Action类代码如下:

public class JSONExample
   {
   //封装请求参数的三个属性
   private String field1;
   private transient String field2;
   private String field3;
   //封装处理结果的属性
   private int[] ints = {10, 20};
   private Map map = new HashMap();
   private String customName = "custom";
   //三个请求参数对应的setter和getter方法
   public String getField1()
   {
   return field1;
   }
   public void setField1(String field1)
   {
   this.field1 = field1;
   }
   //此处省略了field1和field2两个字段的setter和getter方法
   ...
   //封装处理结果的属性的setter和getter方法
   public int[] getInts()
   {
   return ints;
   }
   public void setInts(int[] ints)
   {
   this.ints = ints;
   }
   public Map getMap()
   {
   return map;
   }
   public void setMap(Map map)
   {
   this.map = map;
   }
   //使用注释语法来改变该属性序列化后的属性名
   @JSON(name="newName")
   public String getCustomName()
   {
   return this.customName;
   }
   public String execute()
   {
   map.put("name", "yeeku");
   return Action.SUCCESS;
   }
   }

时间: 2024-11-03 22:07:54

在Struts 2中使用JSON插件的相关文章

在Struts 2中使用JSON Ajax支持

JSON插件提供了一种名为json的ResultType,一旦为某个Action指定了一个类型为json的Result,则 该Result无需映射到任何视图资源.因为JSON插件会负责将Action里的状态信息序列化成JSON格式的数据 ,并将该数据返回给客户端页面的JavaScript. 简单地说,JSON插件允许我们在JavaScript中异步调用Action,而且Action不再需要使用视图资源来 显示该Action里的状态信息,而是由JSON插件负责将Action里的状态信息返回给调用页

js中把JSON字符串转换成JSON对象最好的方法

 这篇文章主要介绍了js中把JSON字符串转换为JSON对象最好的方法,需要的朋友可以参考下 在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析.   第一种解析方式:使用eval函数来解析,并且使用jQuery的each方法来遍历 用jQuery解析JSON数据的方法,作为jQuery异步请求的传输对象,jQuery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,

Struts 2中的constant配置详解_java

1.<constant name="struts.i18n.encoding" value="UTF-8" /> 指定Web应用的默认编码集,相当于调用 HttpServletRequest的setCharacterEncoding方法. 2.<constant name="struts.i18n.reload" value="false"/> 该属性设置是否每次HTTP请求到达时,系统都重新加载资源文

struts 2,ajax返回json的404问题

问题描述 struts 2,ajax返回json的404问题 今天尝试用struts时,发现这样一个问题. 前端ajax发送的请求总是报404. 以下是代码段,请各位看看问题出在哪里. 首先是Struts.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configur

关于在jsp界面中使用bootstrap-table插件的分页问题

问题描述 关于在jsp界面中使用bootstrap-table插件的分页问题 最近在做一个比较大的项目,用了bootstrap-table这个插件来处理表格,方便很多.但是在分页的时候,不知道前端jsp界面和后端servlet分别怎么写.后端是不是只要传递json给前端就可以,前端分页怎么发送请求到后端?求大神指教,很着急!!! 解决方案 看看这里http://blog.csdn.net/evankaka/article/details/49452201 我也是用一个bootstrap的插件写的

请问怎么把javascript中的json对象传到action的list啊?

问题描述 javascript中:var req_updateStudentScore = {"tbScoreList": [                                                 {"tbScoreId": "100000"}]        };                    $.post(url_updateStudentScore,req_updateStudentScore,functi

Ruby和Ruby on Rails中解析JSON格式数据的实例教程_ruby专题

Ruby解析JSON Ruby解析Json例子: json = '["a", "B", "C"]' puts "Unsafe #{unsafe_json (json).inspect}" #输出Unsafe ["a", "B", "C"] Ruby解析Json把上面的json字符串解析成Array.这样的方法并不安全,比如: json = 'puts "Da

struts2使用json插件,返回值为空,请前辈帮帮忙!

问题描述 环境:struts2-json-plugin-2.1.8.jar和jquery1.5.2.min.jsstruts.xml<packagename="ajax"extends="json-default"><actionname="regnow"method="RegisterNow"class="com.manage.struts.action.AjaxAction">&

Java的Struts框架中&amp;lt;results&amp;gt;标签的使用方法_java

<results>标签在Struts2的MVC框架的视图中所扮演的角色.动作是负责执行业务逻辑.执行业务逻辑后,接下来的步骤是使用<results>标签显示的视图. 经常有一些附带导航规则的结果.例如,如果在操作方法是对用户进行验证,有三种可能的结果. (一)成功登录:(二)不成功的登录,用户名或密码错误:(三)帐户锁定. 在这种情况下的动作方法将被配置呈现的结果有三种可能的结果字符串和三个不同的看法.我们已经看到在前面的例子. 但是,Struts2 不配合使用JSP作为视图技术.