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 ...
随机推荐
- Service Oriented Architecture
What is Service Oriented Architecture (SOA)? There have been so many interpretations of this through ...
- 更换手机号或者更换手机后QQ设备锁的设置问题
更换手机号 一步到位,更改密保手机号,OK了 更换手机 老卡插入 登录QQ,OK了 更换手机号和手机 老卡插入新手机 登录QQ 新卡插入新手机 更改密保手机号,OK了
- Linux Kernel本地权限提升漏洞
漏洞版本: Linux Kernel 漏洞描述: Bugtraq ID:64291 CVE ID:CVE-2013-6368 Linux Kernel是一款开源的操作系统. 如果用户空间提供的vapi ...
- MFC窗口重绘
Invalidate()与 UpdateAllViews()有什么分别 Invalidate()是让程序重画窗口. UpdateAllViews()是在DOC/VIEW结构中, 当一个视图的数据改变后 ...
- LinkedList源码解析
LinkedList是基于链表结构的一种List,在分析LinkedList源码前有必要对链表结构进行说明.1.链表的概念链表是由一系列非连续的节点组成的存储结构,简单分下类的话,链表又分为单向链表和 ...
- Shell 脚本编程
Shell 两个数据比较取差异 flag=0 local array1=("a" "b") local array2=("a" " ...
- Windows下部署Git Server端
解决方案一: (注意:如果英文阅读没太大障碍,直接到Bonobo官网看相关文档即可.) win7(windows server 2008应该也可以,没测试过)+ IIS7.5(win7自带的)+ Gi ...
- 韦东山yy公开课笔记(2)--各种杂的问题
1. 编译器的版本和glibc库有对应关系吗,如何查看glibc的版本(glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc),编译器是不是只带glibc被编译生成的 . ...
- HADOOP2.2.0安装配置指南
一. 集群环境搭建 这里我们搭建一个由三台机器组成的集群: Ip地址 用户名/密码 主机名 集群中角色 操作系统版本 192.168.0.1 hadoop/hadoop Hadoop-mast ...
- 使用yum和iso镜像离线升级RedHat系统
创建一个用于挂载iso镜像的目录.由于这个目录不能在挂载时自动创建,所以需要以root身份先创建一个目录.命令: mkdir mount_dir 以root身份把iso镜像挂载到上一步创建的目录上.命 ...