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