一、使用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. Visual Studio 2015在.NET Core RC2项目中的一个错误。

    更新了.NET Core RC2 之后,VS的Web Tools更新为“Preview 1”了. 这个版本有一个问题,害我折腾了一个下午. 就是在项目界面的“依赖项 - NPM”上面错误地显示了不必要 ...

  2. spring-stutrs求解答

    这里贴上applicationContext里的代码: <?xml version="1.0" encoding="UTF-8"?> <bea ...

  3. javaweb优化

    http://blog.csdn.net/jiangzhaobao/article/details/8003244

  4. PHP规范PSR2

    为了尽可能的提升阅读其他人代码时的效率,下面例举了一系列的通用规则,特别是有关于PHP代码风格的.各个成员项目间的共性组成了这组代码规范.当开发者们在多个项目中合作时,本指南将会成为所有这些项目中共用 ...

  5. Asp.net mvc5开源项目"超级冷笑话"

    业务时间做了个小网站,超级冷笑话,地址:http://www.superjokes.cn/ 开发技术: asp.net mvc5 +SQLServer2012 ORM:NPoco 用了简单的三层结构 ...

  6. 学习Javascript闭包(Closure)

    闭包作用 1.让变量驻留在内存中 2.函数外部可以读取函数内部的私有变量 <!DOCTYPE html> <html lang="en"> <head ...

  7. jquery插件图片延时加载实例详解

    效果预览:http://keleyi.com/keleyi/phtml/image/index.htm 使用方法:1.导入JS插件 <script src="http://keleyi ...

  8. PHP

    * PHP语言1.基本内容 * PHP语言 - 类似于javascript语言的 * javascript是客户端(HTML)的脚本语言 * PHP是服务器端的脚本语言 * PHP文件的扩展名为&qu ...

  9. SQL多表查询

    设置主键:点击右键设为主键,在默认值那设置newid(),即可自动生成 Join inner join(内连接):select * from 表1 inner join 表2 on 表1.列 = 表2 ...

  10. 又到周末了,我们一起来研究【浏览器如何检测是否安装app】吧

    前言 扯淡 这个月比较倒霉,我送了女朋友一台笔记本电脑作为生日礼物,结果15天一过电脑就坏了,悲剧的我还把电脑盒子给扔了!淘宝不给换更不给退 于是被女朋友臭骂了一过星期后,今天本来在公司有任务的,但是 ...