jackyrong

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  在struts 2中,要结合json的话,其实是不错的选择,最近做一个登陆系统时,可以考虑选择用
struts 2结合json,下面是要点

register页面
<s:form action="Regist.action">
   <s:textfield id="user" name="user" label="用户名" onblur="validateName();"/>
然后是验证的javascript
<script language="JavaScript">
   function validateName()
   {
    //请求的地址
    var url = 'validateName.action';
    var params = Form.Element.serialize('user');
    //创建Ajax.Request对象,对应于发送请求
    var myAjax = new Ajax.Request(
    url,
    {
     //请求方式:POST
     method:'post',
     //请求参数
     parameters:params,
     //指定回调函数
     onComplete: processResponse,
     //是否异步发送请求
     asynchronous:true
    });
   }
   function processResponse(request)
   {
    var action = request.responseText.parseJSON();
    $("tip").innerHTML = action.tip;
   } 
  </script>
  其中var action = request.responseText.parseJSON();
是使用parseJson()方法把服务器的响应解析成JSON对象
再将JSON对象的tip属性输出
validateName.action代码为

public class ValidateNameAction implements Action
{
 private String user;
 private String tip;
 private UserManager mgr;
 public void setMgr(UserManager mgr)
 {
  this.mgr = mgr;
 }

 public String execute()
 {
  try
  {
   if (mgr.validateName(user))
   {
    setTip( "你好!" + user + ", 这个用户名可用!");
   }
   else
   {
    setTip( "系统中已有" + user + "用户名,请重新选择一个!");
   }
  }
  catch (Exception e)
  {
   setTip(e.getMessage());
  }
  return SUCCESS;
 }

要将struts 2搭配json,要进行配置
  
   <action name="validateName" class="org.yeeku.action.ValidateNameAction">
   <result type="json"/>
  </action>

 
posted on 2008-05-11 23:06  jackyrong的世界  阅读(1927)  评论(0编辑  收藏  举报