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>





郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。