Struts自定义结果类型实现Ajax验证(ssh)

来源:互联网 发布:别人羡慕的生活知乎 编辑:程序博客网 时间:2024/05/17 03:33

Struts本身就提供了和ajax结合的类库,  我们这里是 自定义的。


首先我们得传建一个 实现了com.opensymphony.xwork2.Result   的类:

如下:

public class AjaxResult implements Result{public void execute(ActionInvocation arg0) throws Exception {HttpServletResponse response=ServletActionContext.getResponse();response.setCharacterEncoding("utf-8");PrintWriter out=response.getWriter();String message= ActionContext.getContext().getValueStack().peek().toString();out.print(message) ;}}
 下面是一个 具体的Action类实现 一个后台Ajax验证的:(部分代码)

 public String AjaxAction(){  Student s=studentService.getStudentByName(name); //System.out.println(".....Stduent..."+s);  if(s==null){ ActionContext.getContext(). getValueStack().push("用户名可以注册"); }else{ ActionContext.getContext().getValueStack().push("用户名已经存在。。");  } return SUCCESS; }
其中:studentService.getStduentByName(name);是Service层的方法,具体是通过明字获得Student,当然前提是 Ajax得传一个name,


Struts.xml的配置:

<package name="user" namespace="/" extends="struts-default"><result-types><result-type name="AjaxResult" class="com.zsq.Sshcz.result.AjaxResult"></result-type></result-types><action name="AjaxAction" class="com.zsq.Sshcz.action.StudentAction" method="AjaxAction"><result type="AjaxResult" ></result></action></package>
这样就基本实现了  Ajax的后台的配置。

我们现在做前台

<form action="student!save" method="post">   姓名:<input type="text" name="name" ><span id="tip" ></span></br>   性别<input type="radio" name="sex" value="男"> 男<input type="radio"name="sex" value="女"> 女 <br/>   年龄:<input type="text" name="age" ><br/>   <input type="submit" value="写入"/>   </form>

当然我用到了jQuery,导入的是jquery-1.6.1.min.js,

我写了一个js:check.js具体的代码如下:

$(document).ready( function(){$("input[name='name']").unbind("blur");$("input[name='name']").bind("blur",function(){var name=$("input[name='name']").val();$.ajax({   type: "POST",   url: "AjaxAction?name="+name,   success: function(msg){if(msg=="用户名已经存在。。"){$("#tip").css("color","red");}else{$("#tip").css("color","green");}$("#tip").html(msg);   }});});});
这样就实现了具体的验证:



这里的qw是已经注册的用户。



这样就实现了 自定义的Result实现Ajax验证.


写给有需要的人。。



0 0
原创粉丝点击