一、 写一个AjaxCheckAction异步加载类
//定义一个InputStream类型的成员变量
//给该变量添加getter和setter方法
//执行业务操作,将响应数据赋值给该成员变量
public class AjaxCheckAction {
private String userName;
private InputStream inputStream;
public String check() {
String resultStr = "";
if (userName != null && userName.equals("admin")) {
resultStr = " <font color='red'>用戶名已被佔用</font> ";
}else{
resultStr=" <font color='green'>用戶名可用</font> ";
}
try {
inputStream=new ByteArrayInputStream(resultStr.getBytes("utf-8"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return"success";
}
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;
}
}
二、 在struts.xml配置文件中配置action
<action name="checkName" class="action.AjaxCheckAction" method="check"> <result type="stream"> <param name="contentType">text/html</param>
<param name="inputName">inputStream</param>
</result>
</action>
三、 在JSP页面:一个用户名输入框,一个返回信息(用户名异步提醒)框
<s:text name="userName"></s:text>:<s:textfield onblur="check(this);" name="user.userName"></s:textfield> <div id="msg" style="display:inline"></div>
四、 在/js文件夹下放入jQuery插件
五、 在JSP页面写ajax方法
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript">
function check(obj){
var userName=$(obj).val();
$.get("checkName.action","userName="+userName,function(returnData){
$("#msg").html(returnData);
}); }
</script>