一、使用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>

实现效果:

最新文章

  1. MongoDB分组汇总操作,及Spring data mongo的实现
  2. SQL Server 2000:快速清除日志文件的方法
  3. Java学习笔记12
  4. wrapper for lua
  5. Working with Transactions (EF6 Onwards)
  6. thinkphp框架验证码验证一次
  7. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)
  8. Windows Squid 安装配置
  9. jQuery中的事件冒泡
  10. App上架审核指南翻译
  11. 统计SQLSERVER表行数,以及每天数据变化的行数
  12. 多线程异步编程示例和实践-Thread和ThreadPool
  13. ElasticSearch的插件(Plugins)介绍
  14. SpringMVC上传文件的三种方式(待整理...)
  15. Crash 文件调试
  16. Android设计和开发系列第一篇:Notifications通知(Develop—Training)
  17. grub24dos
  18. 前端 html input标签 placeholder属性 标签上显示内容
  19. one by one 项目 part 6
  20. Failed to load JavaHL Library. SVN

热门文章

  1. MySQL数据库中delimiter的作用概述
  2. 微软Microsoft开源历程与相关资源
  3. 领域驱动设计常见问题FAQ
  4. VS2015开发Android,自带模拟器无法调试、加载程序,算是坑吗
  5. 转:Java Web应用中调优线程池的重要性
  6. 悟透JavaScript(理解JS面向对象的好文章)
  7. Mvc视图的那些事
  8. javascript 函数初探 (四)--- 回调函数
  9. ArcGIS JS 学习笔记4 实现地图联动
  10. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q144-Q146)