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 ...
随机推荐
- usaco4.12Fence Rails(迭代加深)
为了这题还去学了下迭代加深 回来还是不会写 只好参考各大神的代码及题解了 二分枚举最大可以切的块数 然后就是各种分析及优化 USACO题解里写了7个优化.. 问题分析 抽象一下就可以发现,算法的本质是 ...
- 函数 xdes_get_state
得到XDES Entry中状态 /**********************************************************************//** Gets the ...
- bzoj1670
第一道凸包 采用Andrew算法,不论实现还是理解都非常简单 ..] of longint; i,j,k,m,n:longint; ans:double; procedure swap ...
- C#开发漂亮的数字时钟
今天用C#做了一个漂亮的数字时钟.界面如下. 实现技术:主要是通过Graphics类的DrawImage方法来绘制数字时钟中所有的数字,这些数字是从网上找的一些图片文件.时钟使用DateTime中No ...
- NOI2008 志愿者招募
1061: [Noi2008]志愿者招募 Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 1859 Solved: 1169[Submit][Stat ...
- Mysql规范和使用注意点(转)
命名规范: 1表名,字段名,索引名称使用小写字母,数字采用下划线进行分割 2.表名采用模块名3个缩小字符 '前缀'之后顺序为表明 3.表名,字段名不超过32个字符 4.存储尸体数据的表,名称使用名词, ...
- Android3.0中ActionBar的新特性
1. ActionBar(活动栏)替代了显示在屏幕顶端的标题栏.主要负责显示菜单,widget,导航等功能,主要包括:@ 显示选项菜单中的菜单项到活动栏:@ 添加可交互的视图到活动栏作为活动视图: ...
- codeforces 652D Nested Segments 离散化+树状数组
题意:给你若干个区间,询问每个区间包含几个其它区间 分析:区间范围比较大,然后离散化,按右端点排序,每次更新树状数组中的区间左端点,查询区间和 注:(都是套路) #include<cstdio& ...
- QT学习(对话框)codeblock版本
参考: http://www.cnblogs.com/JohnShao/archive/2011/09/26/2191627.html http://www.cnblogs.com/xiao-chen ...
- 关于 Unity 中 ModelImporter.optimizeGameObjects
ModelImporter.optimizeGameObjects 能够优化骨骼动画,将无用的骨骼合并,效率测试官方给出的数据差距比较大( Unity CJ 干货分享:全新的Unity移动游 ...