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的更多相关文章

  1. ssh整合问题总结--使用struts2+Ajax+jquery验证用户名是否已被注册

    在用户模块中的用户注册需求上,通常要进行用户名是否已被注册的验证,今天正好写了这个需求,把详细代码和所遇到的问题贴过来.在使用struts2+ajax时候,通常我们会返回json类型的数据,但是像上面 ...

  2. struts2 + ajax + json的结合使用,实例讲解

    struts2用response怎么将json值返回到页面javascript解析,这里介绍一个struts2与json整合后包的用法. 1.准备工作 ①ajax使用Jquery:jquery-1.4 ...

  3. struts2+ajax实现异步验证实现

    由于老师布置作业的需要,在添加管理员的时候,要实现验证添加的管理员的用户名是否在数据库中已经存在,然后再客户端给用户一个提示.我首先想到的就是利用ajax实现异步验证技术,由于利用的ssh框架,所以在 ...

  4. struts2+ajax实现异步验证

    由于老师布置作业的需要,在添加管理员的时候,要实现验证添加的管理员的用户名是否在数据库中已经存在,然后再客户端给用户一个提示.我首先想到的就是利用ajax实现异步验证技术,由于利用的ssh框架,所以在 ...

  5. struts2+ajax 前后端传值

    摘要: 主要实现步骤如下: 1.JSP页面使用脚本代码执行ajax请求 2.Action中查询出需要返回的数据,并转换为json类型模式数据 3.配置struts.xml文件 4.页面脚本接受并处理数 ...

  6. struts2 ajax 实现方式

    在 struts2 中实现ajax,可以使用struts2-json-plugin扩展,但是返回的json字段必须都是Action中的属性,不可以随意的输出文本. 返回任意的文本有两种方式, 方法一: ...

  7. 为什么struts2 ajax 方法执行两次

    struts2中使用json插件执行ajax处理时,如果方法名是get方法的时候,方法会莫名其妙的执行两次. 原因: struts2 中JSON的原理是在ACTION中的get方法都会序列化,所以前面 ...

  8. Struts2+Ajax实现检测用户名是否唯一

    搞了慢慢两天,终于弄明白了怎么在Struts2框架中使用Ajax检测用户名的存在了.虽然,比起那些大牛们来,这速度确实够慢的,不过,最终弄出来还是满满的成就感啊. 闲话休提,言归正传.直接上代码: A ...

  9. Struts2+AJAX+JQuery 实现用户登入与注册功能。

    要求 必备知识 JAVA/Struts2,JS/JQuery,HTML/CSS基础语法. 开发环境 MyEclipse 10 演示地址 演示地址 预览截图(抬抬你的鼠标就可以看到演示地址哦): 关于U ...

随机推荐

  1. 转:为什么Eclipse中 按 F3 无效

    通常是由于自己的 工程 建得不对, 没有声明为 JAVA 或 PHP 类型工程. 例如, PHP 工程的 .project 文件中的内容如果如下, F3 应该就可以起作用了. <?xml ver ...

  2. 【HDOJ】3652 B-number

    终于自己写出来一道数位DP啊.继续训练DP. /* 3652 */ #include <iostream> #include <sstream> #include <st ...

  3. 【HDOJ】1408 盐水的故事

    简单题,感觉非常简单,像小学奥数的植树问题. #include <stdio.h> #include <math.h> #define MAXNUM 5001 int main ...

  4. Eclipse问题解决方案,不断更新

    执行“software update”时出现:Error retrieving "feature.xml"... 执行“software update”时出现:Error retr ...

  5. mapreduce实现全局排序

    直接附代码,说明都在源码里了. package com.hadoop.totalsort; import java.io.IOException; import java.util.ArrayList ...

  6. 如何修改word的项目编号

    在操作word文档时,有时会遇到word文档中的项目编号不是自己需要的,并造成word项目编号的混乱,如何word中的两级项目编号不统一,为解决会word的项目编号混乱问题,小编将教大家如何修改wor ...

  7. js中字符串转换为日期和比较大小

    本文转载于:http://yun342173024.iteye.com/blog/1873756在做前端校验的时候,要做日期比较的校验,在js中把字符串转化为日期,一时之间还真不知道在js中怎么把一个 ...

  8. MySQL问题集绵

    1.MYSQL can't create table(errno:150) 详细:[Err] 1005 - Can't create table '.\ejforum\ejf_attach.frm' ...

  9. word 中Sentences、Paragraph等含义和用法

    word 中有Words,Characters,Sentences.Paragraph,Sections 具体含义如下表达式             含义   返回的对象 Words(index)  ...

  10. 数学物理学报Offprints and Remuneration