Struts2对AJax的支持(使用JQuery)

使用stream类型的Result实现Ajax

1、视图:test.jsp

<%--
  Created by IntelliJ IDEA.
  User: dong
  Date: 15-4-22
  Time: 下午3:26
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
    <link rel="stylesheet" href="js/jquery-1.10.2.min.js">
</head>
<body>
    用户名:<input type="text" id="name" onblur="aa()" value="张三" name="userName" />
    <span id="sp"></span><br/>
    <input type="text" id="other" />
    <script>
      function aa(){
        $(document).ready(function() {
          $.post("checkuserName.action", {
            userName: document.getElementById("name").value
          }, function (data, status) {
            alert("Data:" + data + "\nStatus:" + status);
            if(status=="success"){
                if(data=="yes")
                  document.getElementById("sp").innerHTML="账户名可以被注册";
                else
                  document.getElementById("sp").innerHTML="不能注册";
            }
          },"html");
        });
      }
      </script>
<script src="js/jquery-1.10.2.min.js"></script>
</body>
</html>

2、test.java

@Component
public class Test extends ActionSupport {
    //取得post中userName对应的value值
    private String userName;
    //封装输出结果的二进制流
    private InputStream inputStream;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public InputStream getInputStream() {
        return inputStream;
    }

    public void setInputStream(InputStream inputStream) {
        this.inputStream = inputStream;
    }

    @Override
    public String execute() throws Exception {
        inputStream = userName.equals("张三")?
                new ByteArrayInputStream("yes".getBytes("UTF-8")):new ByteArrayInputStream("no".getBytes("UTF-8"));
        return Action.SUCCESS;
    }
}

3、struts.xml文件

<constant name="struts.i18n.encoding" value="UTF-8"/>
        <constant name="struts.devMode" value="true"/>
        <constant name="struts.enable.DynamicMethodInvocation" value="false"/>

        <package name="zjd" extends="struts-default">
                <action name="checkuserName" class="loginAction">
                        <result type="stream">
                                <!--指定stream生成的响应数据的类型-->
                                <param name="contentType">text/html</param>
                                <!--指定由getResult()方法返回输出结果的InputStream-->
                                <param name="inputStream">result</param>
                        </result>
                </action>
        </package>
时间: 2024-08-10 23:12:45

Struts2对AJax的支持(使用JQuery)的相关文章

Struts2对AJAX的支持

一.简介        struts2确实一个非常棒的MVC框架.这里部分记述一下struts2对AJAX的支持.实现AJAX有两种方式,一种是使用原生的javascript代码实现,一种是使用第三方的ajax框架(jquery,dwr,dojo等),jquery和dwr比较简单,做项目时也会经常用到.Struts2并没有发明新的AJAX框架,而是使用两个较为流行的框架,即Dojo框架和DWR框架. Dojo是一个用javascript语言实现的开源DHTML工具包,是一个客户端的AJaX框架,

struts2学习笔记(8)-------struts2的ajax支持

struts2支持一种stream类型的Result,这种类型的Result可以直接向客户端浏览器响应二进制,文本等, 我们可以再action里面生成文本响应,然后在客户端页面动态加载该响应即可. 直接看例子: public class LoginAction { private String user; private String pass; private InputStream inputStream; public InputStream getInput(){ return inpu

JavaScript之Ajax-6 Ajax的增强操作(jQuery对Ajax的支持、表单操作)

一.jQuery对Ajax的支持 load() - 作用: 将服务器返回的数据字节添加到符合要求的节点之上 - 用法: $obj.load(请求地址,请求参数) - 请求参数 - "username=tom&age=22" - {'username':'tom','age':22} - 有请求参数时,load方法发送POST请求,否则发送GET请求 get() - 作用: 发送GET类型的请求 - 用法: $.get(请求地址,请求参数,回调函数,服务器返回的数据类型) - 说

jquery ajax中支持哪些返回类型以及js中判断一个类型常用的方法?

1 jquery ajax中支持哪些返回类型在JQuery中,AJAX有三种实现方式:$.ajax() , $.post , $.get(). 预期服务器返回的数据类型.如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML.在 1.4 中,JSON 就会生成一个 JavaScript 对象,而 script 则会执行这个脚本.随后服务器端返回的数据会根据这个值解析后,传递给回调 函数.可用值: •"xml": 返回

IT兄弟连 JavaWeb教程 jQuery对AJAX的支持

jQuery对AJAX的支持 jQuery对Ajax请求的创建.发送.响应.注册数据处理函数.JSON的解析和缓存以及传参等都进行了相应的封装,同时也考虑了浏览器的兼容性问题. jQuery中对AJAX支持核心函数 jQuery中对Ajax支持的核心函数是$.ajax()函数,$.ajax()函数的代码结构如下: $.ajax({ url : 请求地址, type : 请求方式, async : 默认为true,表示异步请求,false表示同步请求, data : 请求参数, dataType

【JavaWeb】jQuery对Ajax的支持

jQuery对Ajax的支持 jQuery对Ajax进行封装,提供了$.ajax()方法 语法:$.ajax(options) 常用设置项 说明 url 发送请求地址 type 请求类型get|post data 向服务器传递的参数 dataType 服务器响应的数据类型text|json|xml|html|jsonp|script success 接收响应时的处理函数 error 请求失败时的处理函数 实例代码 MusicServlet.java package demo; import ja

struts2发送ajax的几个问题(不使用struts2-json-plugin的情况下)

采用原始方式发送ajax到action时,会遇到get,post的不同,原因是ContentType的问题,ContentType必须是text/html,struts获取到的inputStream才会有值!而默认jquery发送ajax采用的ContentType是application/x-www-form-urlencoded; charset=UTF-8,如果手动设置为json格式进行发送,那么struts2就获取不到数据了,所以在采用Post提交时不用指定ContentType,采用默

原生态AJAX详解和jquery对AJAX的封装

AJAX: A :Asynchronous [eI`sinkrenes] 异步 J :JavaScript    JavaScript脚本语言 A: And X :XML 可扩展标记语言 AJAX现在貌似已经无处不在了,其实自从web2.0的广泛发展带来了AJAX的发展.我们目前的客户端可以分为胖客户端(C/S).廋客户端(B/S), PS:胖客户泛指客户端承担一部分计算工作减轻服务器压力.典型应用 :C / S架构的客户端.瘦客户泛指客户端不承担任何计算工作,完全依赖服务器端计算.典型应用:B

Struts2结合Ajax实现登录

前言:Struts2作为一款优秀的MVC框架,和Ajax结合在一起,用户就会有良好的体验,本篇博文我们来模拟一个简单的登录操作,实现Ajax的异步请求,其中Struts2进行的是链接处理,Action动态处理请求,Ajax负责进行异步处理,传送数据与返回数据,其中主要使用的技术有:struts2+Ajax+Jquery+Css,好吧,废话不多说,让我们来看看这个实例吧. 第一步:新建一个Dynamic web project,然后起名:Struts2Ajax,引入相关的jar包,在web.xml