Struts2.1.6中关于JSON的配置和使用

 JSON的优点众所周知,在此不作叙述.
JSON在AJAX的应该比较的多些,下面结合一下struts2.1.6和大家分享一下

1,需要把jsonplugin-0.33.jar拷贝到Web-INF/lib目录下.
       关于这个JAR包是JSON在struts2.1.6插件包.里面有我们要用到的struts-plugin.xml,关于这个JAR包,经过本人的测试和网上的搜索,得出最新的0.7版本在cglib方面存在着问题,建议大家使用0.33版本.
2,在struts2.1.6的配置文件中进行配置,就是返回的类型是json,并且要为JSON数据单独创建一个Package,继承的包不再是struts-default,而是json-default
示例代码如下:


3,前台页面用Ajax接收到的是JSON数据格式,
{"hashMap":{"name":"wangsh","pass":"qihuan"},"pass":"这是密码啊Password","username":"wangsh"}.
本人的前采用的是Jquery1.2.6中的Ajax Post方式异步提交的.
示例代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <s:text name="%{getText('regsiterpagetitle')}" /> 测试Json




可能细心的朋友已看到了:
eval("json="+data);
window.alert("----------"+json.username);
以上的代码是何义呢?
Data是Action返回的数据.
以下是Action的代码:

package com.wang.struts2.action; import java.util.HashMap; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.opensymphony.xwork2.ActionSupport; public class JosnTestAction extends ActionSupport { private Log log = LogFactory.getLog(JosnTestAction.class); private String username; private String pass; private Map hashMap = new HashMap(); public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Map getHashMap() { return hashMap; } public void setHashMap(Map hashMap) { this.hashMap = hashMap; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } public String jsontest() throws Exception { hashMap.put("name", this.getUsername()); hashMap.put("pass", "qihuan"); this.setPass("这是密码啊Password"); log.info("===========测试JSON============"); return "jsonres"; } }
也就是说服务器返加在的数据是所有的Action属性,当然要提供读写器(get和Set方法)的.
我们可以采用简单的两行代码
eval("json="+data);//将JSON转化为一个对象,并且名为joson
window.alert("----------"+json.username);//打印出Username的值
window.alert("----------"+json.hashMap.pass);//拿到的是Map中的某个值.
可以很方便的取得JSON中的任何一个属性.

你可能感兴趣的:(Struts2.1.6,json,struts,hashmap,string,import,action)