前几天一直在忙着实现用户注册功能,今天有空便把这几天得到经验记下来,以便使用。
一、功能要求:在Struts2框架下使用Ajax,用户填写注册信息时,在不进行页面跳转的情况下给予用户名或者ID重复的提示。
二、环境配置:在已搭建Struts2框架的基础上,引入Jar包:json-lib-2.3-jdk15.jar、struts2-json-plugin-2.3.14.jar,引入JQuery类库
三、页面JSP代码:
<tr>
<td width="77">
账号:
</td>
<td width="322">
<input type="text" name="account" id="account" />
</td>
<td id="accountTip"></td>
</tr> 四、JS代码:
$.ajax({
url : "check/checkName", // 后台处理程序,对应Action
type : "post", // 数据发送方式
dataType : "json", // 接受数据格式
data : "userName="+$("#account").val(), // 要传递的数据
// 回传函数
timeout:20000, // 设置请求超时时间(毫秒)。
error: function () { //请求失败时调用函数。
$("#msg").html("请求失败!");
},
success:function(dataObj){ //请求成功后回调函数。
if(dataObj.message == "0" ){
$("#accountTip").html("用户名已存在!");
}else if(dataObj.message == "1"){
$("#accountTip").html("用户名可用");
}
}
});//$.ajax({五、Struts.xml
<package name="check" namespace="/check" extends="json-default" >
<action name="checkName" class="com.register.UsingAjax" method="checkName">
<result type="json"></result>
</action>
</package>六、Java代码
package com.register;
import com.opensymphony.xwork2.ActionSupport;
public class UsingAjax extends ActionSupport{
private String userName;
private String message;
public String checkName() {
String name = this.userName;
if (localUtil.verifyName(name))
message = "0";
else
message = "1";
return SUCCESS;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
七、效果图:
八、注意事项:
其中jquery-2.0.0.min.js在使用时仍存在bug,对于chrome与firefox支持良好,但对IE9仍然存在以下问题:
解决方法:使用稳定的jquery-1.10.1.min.js

本文介绍如何在Struts2框架下利用Ajax实现用户名的实时检查功能,确保在用户注册过程中能够及时反馈用户名是否已被占用。文章详细描述了环境配置、JSP页面设计、JavaScript交互代码、Struts配置及Java后端处理等关键步骤。
411

被折叠的 条评论
为什么被折叠?



