struts2+ajax
web网页开发中需要用到struts2来处理action,通过struts2定义后端java类。
<action name="loginAction" class="java类的路径" method="Java类中的方法">
<!--注意如果java类中定义的方法是有返回值的,则<result>标签形式必须为<result>网页</result>,也就是result标签中必须有元素 --> <result name="success">homePage.jsp</result>
<result name="login">Login.jsp</result>
<!--注意如果java类中定义的方法没有返回值的,则<result>标签形式必须为<result></result>,也就是result标签中没有元素 -->
<result name="success"></result>
</action>
这里给出完整的struts.xml文件,以及homePage_initialAction方法。
<?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"> <!-- START SNIPPET: xworkSample -->
<struts>
<!-- <constant name="struts.devMode" value="true" />开启开发者模式 -->
<!-- <package name="default" extends="struts-default"> <action name="login"
class="Login" method="execute"> <result name="success">/success.jsp</result>
<result name="fail">/fail.jsp</result> </action> </package> -->
<!--
result中的name属性有下: 1、success : 表示请求处理成功,该值也是默认值。 2、error :表示请求处理失败。 3、none :表示请求处理完成后不跳转到任何页面。 4、input :表示输入时如果验证失败应该跳转到什么地方。 5、login :表示登录失败后跳转的目标。
-->
<package name="default" extends="struts-default"> <action name="addUserAction" class="myPackage.managerAction" method="addUser">
<result name="success">index.jsp</result>
</action>
<action name="getUserAction" class="myPackage.managerAction" method="getUser">
<result name="success">index.jsp</result>
</action>
<action name="link" class="myPackage.managerAction" method="ajax">
<result name="success"></result>
</action>
<!-- 用户登录界面的Action -->
<!-- 登录Action -->
<action name="loginAction" class="myPackage.managerAction" method="loginUser">
<result name="success">homePage.jsp</result>
<result name="login">Login.jsp</result>
</action>
<!-- 注册Action -->
<!-- 主界面Action -->
<action name="homePage_initialAction" class="myPackage.homePageAction" method="homePage_initialAction">
<result name="success"></result>
</action>
</package> </struts>
//homePage方法
public void homePage_initialAction() throws Exception{ //Map<String, String> mapData = new HashMap<String, String>();
String[] names=new String[200];
String[] description=new String[200];
String outData="";
for(int i=0;i<200;++i){
names[i]="name";
description[i]="des";
}
for(int i=0;i<200;++i){
outData+=" "+names[i];
}
for(int i=0;i<200;++i){
outData+=" "+description[i];
}
HttpServletResponse response = ServletActionContext.getResponse();
PrintWriter writer = response.getWriter();
Random rand = new Random();
// 死循环 查询有无数据变化 long responseTime = System.currentTimeMillis(); writer.print(outData); }
前端用ajax主动连接后端,这里ajax的url是在struts2中定义过的(ajax参考http://www.cnblogs.com/hoojo/p/longPolling_comet_jquery_iframe_ajax.html)
/**
* 该函数用来轮询数据库并返回后台信息
*/
//$(function(){}) 是 $(document).ready(function(){}) 的简写
$(function () {
(function longPolling() {
$.ajax({
url: "homePage_initialAction",
data: {"timed": new Date().getTime()},
dataType: "text",
timeout: 5000,
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#debug").append("[state: " + textStatus + ", error: " + errorThrown + " ]<br/>");
if (textStatus == "timeout") { // 请求超时
longPolling(); // 递归调用 // 其他错误,如网络错误等
} else {
longPolling();
}
},
success: function (data, textStatus) {
/*$("#state").append("[state: " + textStatus + ", data: { " + data + "} ]<br/>");*/
document.getElementById("debug").innerHTML=data;
/*alert(data);*/
if (textStatus == "success") { // 请求成功
longPolling();
}
}
});
})(); });
定义完以上几个文件后,struts2就成功的和ajax结合到了一起,前端就能够持续的连接后端了。
struts2+ajax的更多相关文章
- ssh整合问题总结--使用struts2+Ajax+jquery验证用户名是否已被注册
在用户模块中的用户注册需求上,通常要进行用户名是否已被注册的验证,今天正好写了这个需求,把详细代码和所遇到的问题贴过来.在使用struts2+ajax时候,通常我们会返回json类型的数据,但是像上面 ...
- struts2 + ajax + json的结合使用,实例讲解
struts2用response怎么将json值返回到页面javascript解析,这里介绍一个struts2与json整合后包的用法. 1.准备工作 ①ajax使用Jquery:jquery-1.4 ...
- struts2+ajax实现异步验证实现
由于老师布置作业的需要,在添加管理员的时候,要实现验证添加的管理员的用户名是否在数据库中已经存在,然后再客户端给用户一个提示.我首先想到的就是利用ajax实现异步验证技术,由于利用的ssh框架,所以在 ...
- struts2+ajax实现异步验证
由于老师布置作业的需要,在添加管理员的时候,要实现验证添加的管理员的用户名是否在数据库中已经存在,然后再客户端给用户一个提示.我首先想到的就是利用ajax实现异步验证技术,由于利用的ssh框架,所以在 ...
- struts2+ajax 前后端传值
摘要: 主要实现步骤如下: 1.JSP页面使用脚本代码执行ajax请求 2.Action中查询出需要返回的数据,并转换为json类型模式数据 3.配置struts.xml文件 4.页面脚本接受并处理数 ...
- struts2 ajax 实现方式
在 struts2 中实现ajax,可以使用struts2-json-plugin扩展,但是返回的json字段必须都是Action中的属性,不可以随意的输出文本. 返回任意的文本有两种方式, 方法一: ...
- 为什么struts2 ajax 方法执行两次
struts2中使用json插件执行ajax处理时,如果方法名是get方法的时候,方法会莫名其妙的执行两次. 原因: struts2 中JSON的原理是在ACTION中的get方法都会序列化,所以前面 ...
- Struts2+Ajax实现检测用户名是否唯一
搞了慢慢两天,终于弄明白了怎么在Struts2框架中使用Ajax检测用户名的存在了.虽然,比起那些大牛们来,这速度确实够慢的,不过,最终弄出来还是满满的成就感啊. 闲话休提,言归正传.直接上代码: A ...
- Struts2+AJAX+JQuery 实现用户登入与注册功能。
要求 必备知识 JAVA/Struts2,JS/JQuery,HTML/CSS基础语法. 开发环境 MyEclipse 10 演示地址 演示地址 预览截图(抬抬你的鼠标就可以看到演示地址哦): 关于U ...
随机推荐
- dojo自定义Widget
使dojo AMD规范进行widget 定义,开始的时候一直找不到自己定义的widget模块的位置,经过探索,总算有收获,我这个人有毛病,脑子里不允许有一些想不通的问题,一旦有了问题,就非常难受,心里 ...
- Ember.js demo4
<!DOCTYPE html> <html> <head> <meta name="description" content=" ...
- RPGJS 进阶分析之 如何使用RMXP导出的数据
首先启动RMXP 在主脚本编辑区粘贴官方提供的导出数据脚本. 之后启动并进入游戏之后按F8键就可以调出导出Map和Animation的菜单 导出后的数据保存在工程目录下的RpgJs目录下. Datab ...
- plsql 书写命名规范
俗话说事不预则废,无规矩不成方圆. 对sql脚本程序的设计,个人认为应该是从编码规范开始. 前段时间公司一些同事提交的脚本,风格迥异,让我审核起来倍感难受,丝毫没有审核代码的快感. 特整理了公司部分常 ...
- arch Linux not found device 错误解决
使用Archlinux LiveCD mount /dev.sda1 /mnt (有boot分区的挂boot) Running mkinitcpio -p linux Running grub-mkc ...
- CSS学习笔记——定位position属性的学习
今天学习之前剩下的一个问题:CSS的position属性.首先归纳出和position相关的问题: position作为一个属性,它一共有哪几个属性值? position常用的属性值有哪几个?分别有什 ...
- 关于I/O的那点事
转载请著名作者和地址http://www.cnblogs.com/scotth/p/3645489.html 1.关于 IO (fopen出现的错误 errorCode 183) 相关知识点: < ...
- LoadRunner 录制IE 8卡死
LoadRunner11录制脚本,对IE的版本是有所限制的,它只是支持IE 8 以下版本,其中包括IE 8,高出IE 8版本Loadrunner是不支持的. 我遇到LoadRunner录制脚本时IE8 ...
- 自定义控制器的View(loadView)及其注意点
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- 韦东山yy公开课笔记(2)--各种杂的问题
1. 编译器的版本和glibc库有对应关系吗,如何查看glibc的版本(glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc),编译器是不是只带glibc被编译生成的 . ...