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" οnblur="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>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值