整合struts2 jQuery validate 插件的远程Ajax验证
整合struts2 jQuery validate 插件的远程Ajax验证
法:-----对用户名进行验证
<tr>
<td>
<label for="user.username">
用户名(<font color=red>*</font>)
</label>
</td>
<td>
<input name="user.username" id="input1" />
</td>
</tr>
js:
$("#info").validate(
{
rules: {
"user.username":{
required: true,
minlength: 5 ,
maxlength:15 ,
remote:"/ssh2/test/remotetestAction.action"
},
........
}});
struts.xml:
<action name="remotetestAction"
class="com.small.action.RegAction" method="remoteTest">
<result type="stream">
<param name="user.username">inputStream</param><!-- 默认就为inputStream -->
</result>
</action>
action做处理:
public String remoteTest() {
boolean b = false;
if (null == user)
b = true;
else {
logger.info("AJAX验证用户:" + user.getUsername());
User userinfo = this.userDaoImpl.getUser(user);
if (null != userinfo) {
logger.info("AJAX验证用户:" + user.getUsername() + "---->已经存在....");
b = true;
} else
logger.info("AJAX验证用户:" + user.getUsername() + "---->验证通过....");
}
return renderText(b ? "false" : "true");
}
protected String render(String text, String contentType) {
try {
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType(contentType);
response.getWriter().write(text);
} catch (IOException e) {
}
return null;
}
/**
* 直接输出字符串.
*/
protected String renderText(String text) {
return render(text, "text/plain;charset=UTF-8");
}