lib中加入包

struts2-json-plugin-2.3.20.jar

json插件有自己的过滤器、返回类型

WebRoot下新建js文件夹

放入json2.js

json2.js是一个著名开源js库,提供了json的序列化和反序列化方法
JSON.stringify:L353:把Json对象转换成字符串
JSON.parse: L400:把字符串转成Json对象
http://www.json.org/
有 JavaScript:
JSON.
json2.js.
clarinet.
Oboe.js.

ajaxUtil.js 自己封装的一个Ajax工具类

// 参考:XMLHttpRequest 对象
// http://www.w3school.com.cn/xml/xml_http.asp
xmlhttp = null;
if (window.XMLHttpRequest) {// code for all new browsers
xmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {// code for IE5 and IE6
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
function ajaxRequest(url, param, callBackFunction) {
try { if (xmlhttp != null) {
var sUrl = url + '?date=' + new Date();
var oRequest = new XMLHttpRequest();
oRequest.onreadystatechange = function() {
if (oRequest.readyState == 4) {
callBackFunction(oRequest);
}
}; oRequest.open('POST', sUrl);
oRequest.setRequestHeader("Content-Type", "application/json");
oRequest.send(param);
}
} catch (e) { }
}

index.jsp核心代码:

<script type="text/javascript" src="js/ajaxUtil.js"></script>
<script type="text/javascript" src="js/json2.js"></script>
<script type="text/javascript">
function checkuser(o) { var url = "testjson"
var obj = {
"uname" : o.value
}
// 借助json2.js:Json对象→字符串,以便发送
var params = JSON.stringify(obj);
// 借助ajaxUtil.js:发送Ajax请求
ajaxRequest(url, params, ajaxCallBack); } // Ajax回调函数
function ajaxCallBack(oRequest) {
// 借助json2.js:字符串→Json对象,以便解析
var obj1 = JSON.parse(oRequest.responseText);
document.getElementById("msgdiv").innerHTML = obj1.msg1;
}
</script>
    <p id="msgdiv"></p>
<s:form action="" name="test" method="post">
<s:textfield name="uname" onblur="checkuser(this)" />
<s:submit></s:submit>
</s:form>

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.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.devMode" value="true" />
<constant name="struts.configuration.xml.reload" value="true" />
<!-- 不再继承struts-default,而是json-default -->
<package name="p1" namespace="/" extends="json-default">
<action name="testjson" class="org.ah.s2.C1">
<!-- 配置json拦截器,在struts2-json-plugin-2.3.20.jar中 -->
<interceptor-ref name="json" />
<result type="json">
<!-- root:固定值,返回给客户端的对象 -->
<!-- data:Action中的一个属性 -->
<param name="root">data</param>
<!-- 当返回结果有空值时,不包含进来 -->
<!-- 这里AhJsonBean.msg2不包含进来 -->
<param name="excludeNullProperties">true</param>
</result>
</action>
</package>
</struts>

AhJsonBean:

package org.ah.s2;

/**
* Json用的Java Bean
*/
public class AhJsonBean {
private String msg1;
private String msg2; public String getMsg1() {
return msg1;
} public void setMsg1(String msg1) {
this.msg1 = msg1;
} public String getMsg2() {
return msg2;
} public void setMsg2(String msg2) {
this.msg2 = msg2;
} }

Action:

package org.ah.s2;

import com.opensymphony.xwork2.ActionSupport;

public class C1 extends ActionSupport {
private String uname; // -----------------------------
public String getUname() {
return uname;
} public void setUname(String uname) {
this.uname = uname;
} // -----------------------------
// <param name="root">data</param>
// 不需要setter,需要getter,需要new
private AhJsonBean data; public AhJsonBean getData() {
return data;
} // -----------------------------
@Override
public String execute() throws Exception {
// 需要new一个Json的对象
data = new AhJsonBean(); if ("admin".equals(uname)) {
data.setMsg1("这是管理员");
} else {
data.setMsg1("OK!");
}
return ActionSupport.SUCCESS;
} }

运行一下:输入aa,焦点移开:

Struts2:Json插件_Ajax的更多相关文章

  1. struts2 JSON 插件的使用

    1. 导入包: json-lib-2.3-jdk15.jar struts2-json-plugin-2.3.15.3.jar 2. 在struts.xml中修改配置如下: <package n ...

  2. struts2 json 输出日期格式不正确

    struts2 输出json中 日期出现:2013-12-17T15:57:47 错误格式的数据 原因:struts2 json插件对日期的格式化有问题 解决方法:在实体类的日期的get方法上加注解: ...

  3. 【转】Struts2中json插件的使用

    配置注意点: 在原有Struts2框架jar包的引入下,需要额外多加一个Json的插件包(struts2-json-plugin-2.3.7.jar) 在struts.xml配置文件中,包需要继承js ...

  4. Struts2 Convention插件的使用(4)使用@Action注解返回json数据

    package com.hyy.action; import java.util.HashMap; import java.util.Map; import org.apache.struts2.co ...

  5. struts2中使用json插件实现ajax交互

    json插件可以简单的实现ajax交互,避免了使用struts2-dojo-plugin.jar包时带来的struts2.x版本冲突问题.并且减少了使用ajax标签时需要的繁琐的配置包括web.xml ...

  6. Struts2之—集成Json插件实现Ajax

       上篇博客介绍了Struts2中自己定义结果集实现Ajax,也分析了它的缺点:这样自己定义的结果集,写死了,不能做到client须要什么数据就传什么数据:Struts2之-自己定义结果集实现aja ...

  7. Struts2之Json插件的使用

    时间:2017-1-15 02:27 --普通方式处理异步请求:    ServletActionContext.getResponse().getWriter().print("aa&qu ...

  8. 【Struts2】Json插件使用

    一.使用步骤 1.1 引入依赖 1.2 在struts.xml文件中配置 一.使用步骤 1.1 引入依赖 <!-- https://mvnrepository.com/artifact/org. ...

  9. 关于Strut2内置Json插件的使用

    配置注意点: 在原有Struts2框架jar包的引入下,需要额外多加一个Json的插件包(struts2-json-plugin-2.3.7.jar) 在struts.xml配置文件中,包需要继承js ...

随机推荐

  1. java Properties异常:Malformed \uxxxx encoding.

    昨天项目中遇到一个 java.lang.IllegalArgumentException: Malformed \uxxxx encoding.这样的一个异常,debug了一下发现是读取propert ...

  2. jquery给div的innerHTML赋值

    $("#id").html()=""; //或者 $("#id").html("test");

  3. SVN版本控制系统学习(中文配置)

    先吐槽下往上搜索的一些SVN下载地址,里面乱七八糟啥都有,下载好后点击安装一不注意啥玩意都安装上了, 什么玩意都有,真心不明白这些推送者是怎么想的.搜集了一个WIN32的百度网盘下载地址: http: ...

  4. javascript的函数

    1.函数的声明 (1) function命令方式 function fn(){}; (2) 函数的表达式 采用变量赋值的方式,function命令后面不带有函数名.如果加上函数名,那么该函数名只在函数 ...

  5. ArcGIS中的VBA修复

    一直以来,ArcGIS10.1 的VBA安装后,菜单栏里也没相关菜单,听说是许可的问题,直到遇到这个问题才知道真正的原因. 由于项目需要使用了ArcGIS10.0, 不知道操作了什么,打开ArcMap ...

  6. CoreGraphics-基本图形绘制-直线、三角形、矩形、椭圆形、弧形

    框架:CoreGraphics 步骤: 1."获取"图形上下文     let cxtRef = UIGraphicsGetCurrentContext()! 2.添加路径 3.渲 ...

  7. git 远程仓库-github

    第1步:创建SSH Key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步.如果没有,打开Shell ...

  8. Linux MySQL源码安装缺少ncurses-devel包

    在Red Hat Enterprise Linux Server release 5.7 上用源码安装MySQL-5.6.23时,遇到了" remove CMakeCache.txt and ...

  9. Linux 磁盘自检介绍

    在Linux系统中,有时候重启会耗费非常长的时间,如果你进一步检查细节,就会发现绝大部分时间都耗费在磁盘自检(fsck)上了,有时候遇到时间比较紧急的情况,磁盘自检耗费的时间非常长,真的是让人心焦火急 ...

  10. mysql修改数据库编码(数据库字符集)和表的字符编码的方法

    Mysql数据库是一个开源的数据库,应用非常广泛.以下是修改mysql数据库的字符编码的操作过程和将表的字符编码转换成utf-8的方法,需要的朋友可以参考下. mysql将表的字符编码转换成utf-8 ...