一、使用stream类型的Result实现Ajax

具体步骤:

① 定义InputStream类型的成员变量及getter和setter

②具体业务方法中将要发送到客户端的json字符串赋值给成员变量

③编写struts.xml,定义stream生成响应数据类型及输出结果


二、配置Action的result

具体步骤:

①定义package,并继承struts-default

②使用<action>标签定义StreamResultAction类对应的名称和所在位置

③使用stream类型的result结果集

④使用<param>标签指定stream生成响应数据类型及输出结果

三 编写Action类 并继承自ActionSupport类

注:定义的inputStream成员变量要和struts.xml<param>参数一致,并使用ByteArrayInputStream将要发送到客户端的数据赋值给成员变量

四 实现用户名验证

使用jQuery的Ajax方法发送数据到服务器端,获取stream类型的返回数据,并更新页面提示信息,进行拆解数据。需引入jQuery库

 <body>
<div id="demo"></div>
<table>
<tr>
<td>姓名:<input type="text" name="name" id="name" onblur="validate();"/></td>
</tr> <tr>
<td>密码:<input type="password" name="name" id="name"/></td>
</tr> <tr>
<td><center><input type="button" value="提交"/></center></td>
</tr>
</table> </body>

实现效果:


使用JSON插件实现JSON类型的Result

具体步骤:

①将struts2-json-plugin-xxx.jar加入到struts2工程下

②在struts.xml中编写<package>标签,并指定该package继承json-default

③在<package>标签下定义具体的<action>标签,将其子标签<result>的type属性指定为“json”

以用户登录为例:当服务器端接收到用户信息后,进行业务判断,然后返回JSON格式的数据

JSON类型的Result的常用参数:

编写Action类重写execute()进行一系列判定,通过tojson()获取到map集合的值,注意的是这里需引入gson.jar包

两种实现方式:

    <script type="text/javascript">
function validate(){
//锁定到用户名文本框,并且取值
var val=$('#name').val(); $.post('json/jsontest','name='+val,function(data){
//data就是打回到client的数据
//强制让data从{}语句块形态 ----->表达式
data=eval("("+data.result+")");
//{\"flag\":\"false\"}
if(data.flag=="false"){
$("#demo").html("可用");
}else{
$("#demo").html("不可用");
} }); /* $.post('json/jsontest','name='+val,function(data){
//{"result":"{\"flag\":\"false\"}"}
data= data.result;
data=eval("("+data+")");
if(data.flag=="false"){ $("#demo").html("可用");
}else{
$("#demo").html("不可用");
}
},'json'); */
} </script>

实现效果:

jQuery与Struts2综合应用[stream/json]的更多相关文章

  1. jQuery操作列表数据转成Json再输出为html dom树

    jQuery 把列表数据转成Json再输出为如下 dom树 <div id="menu" class="lv1"> <ul class=&qu ...

  2. jQuery获取一般处理程序(ashx)的JSON数据

    昨天有在开发的软件生产线生产流程,RFID扫描IC卡的数据,当中有用到jQuery获取一般处理程序(ashx)的JSON数据.今有把它写成一个小例子,望需要的网友能参考. 在网站中,创建一个一般应用程 ...

  3. 【转】Jquery ajax方法解析返回的json数据

    转自http://blog.csdn.net/haiqiao_2010/article/details/12653555 最近在用jQuery的ajax方法传递接收json数据时发现一个问题,那就是返 ...

  4. JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案

    JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案 最近在开发WSS RESTful服务的时候, 碰到了这些个纠 ...

  5. [原创]K8 Struts2 Exp 20170310 S2-045(Struts2综合漏洞利用工具)

    工具: K8 Struts2 Exploit组织: K8搞基大队[K8team]作者: K8拉登哥哥博客: http://qqhack8.blog.163.com发布: 2014/7/31 10:24 ...

  6. jquery里把数组转换成json的方法

    首先来看,jquery里自带的,和json相关的函数: 1.$.parseJSON  :  用来解析JSON字符串,返回一个对象. 什么叫“JSON字符串”? 比如: var a={name:&quo ...

  7. jquery序列化from表单使用ajax提交返回json数据(使用struts2注解result type = json)

    1.action类引入struts2的"json-default"拦截器栈 @ParentPackage("json-default") //示例 @Paren ...

  8. struts2下实现的json传递list,object。

    必须的jar: java bean: package upload.progress.action; public class music { private String name; private ...

  9. jquery+ajax+struts2

    AJAX 是与服务器交换数据的艺术,它在不重载全部页面的情况下,实现了对部分网页的更新.编写常规的 AJAX 代码并不容易,因为不同的浏览器对 AJAX 的实现并不相同.这意味着您必须编写额外的代码对 ...

随机推荐

  1. SSH整合(struts2.3.24+hibernate3.6.10+spring4.3.2+mysql5.5+myeclipse8.5+tomcat6+jdk1.6)

    终于开始了ssh的整合,虽然现在比较推崇的是,ssm(springmvc+spring+mybatis)这种框架搭配确实比ssh有吸引力,因为一方面springmvc本身就是遵循spring标准,所以 ...

  2. Longest Substring Without Repeating Characters(C语言实现)

    Given a string, find the length of the longest substring without repeating characters. Examples: Giv ...

  3. 最短路径——Floyd-Warshall算法

    Floyd-Warshall算法,简称Floyd算法,用于求解任意两点间的最短距离,时间复杂度为O(n^3). 我们平时所见的Floyd算法的一般形式如下: void Floyd() { int i, ...

  4. [Cordova] 手机网页里的1px

    [Cordova] 手机网页里的1px 1px的显示 Cordova让开发人员可以使用HTML页面,来开发APP的显示内容.但是在手机上,HTML页面里定义的1px,并不是直接对应到手机屏幕的一个像素 ...

  5. canvas实现抽奖大转盘

    这里不给用JS,下面地址有效果以及详细代码 效果地址:http://sandbox.runjs.cn/show/d2et4rys

  6. 关于webStrom-11.1配置less且自动生成.css和自动压缩为.min.css/.min.js

    网上看过很多配置思路,自己总结了以下, 就把我个人配置的顺序以及材料分享下,webstrom以下简称WB 1.配置less需要安装nodejs,自行安装.因为要用到npm.我是直接把npm解压到C盘根 ...

  7. 破壳漏洞利用payload—shellshock in the wild

    FireEye关于破壳漏洞(shellshock)在现实中的利用有一篇文章: shellshock in the wild 原文较长,进行了对CGI利用的详细分析,笔者比较感兴趣的是Shellshoc ...

  8. include的用法例子,以及include+merge的用法例子

    [include+LinearLayout]的使用例子 AndroidIncludeLayout.java package com.AndroidIncludeLayout; import andro ...

  9. AutoLayout(自动布局)

    1. iOS两种自适应布局方式:(修正说明:) -AutoLayout(自动布局) + SizeClasses(尺寸类别) -Autoresizing (自动调整尺寸/弹簧式调整尺寸) 前者 Auto ...

  10. IOS RunLoop 常驻线程的实现

    线程常驻,正如其名,我们要实现的事让一个线程长期存在,不被销毁. 这时会有人说,那还不简单吗. 但是这里我们要实现的事如何让线程座椅待命,而且并不是主线程. 首先介绍一下正常情况下的线程使用. // ...