`
leiwuluan
  • 浏览: 697049 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Struts 的友好报错的实现

阅读更多

这个例子是的功能是:当你在文本框中输入后。点击确定。如果文本框中是空的就在本页上提示“不能为空”

页面代码如下:

<%@ page contentType="text/html; charset=UTF-8" language="java"%>

<%@ taglib  uri="/WEB-INF/struts-html.tld" prefix="html"%>

<%@ taglib  uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

<%@ taglib  uri="/WEB-INF/struts-logic.tld" prefix="logic"%>

<html:html>

       <head>

              <title>我的联系地址</title>

       </head>

       <body>

              <html:errors/>

              <html:form action="">

                     <html:text property="userName"></html:text>

                     <html:password property="password"></html:password>

                     <html:submit/><html:reset/>

              </html:form>

       </body>

</html:html>

 

其中<html:errors/>是用来显示出现的错误的

在判断是否为空有两种方法1是在ActionForm中时行判断2是在FormAction中的业务中进行判断:如下是有ActionForm中的判:

package com.buat.actionForm;

 

import javax.servlet.http.HttpServletRequest;

 

import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.action.ActionMessage;

 

public class LoginForm extends ActionForm {

      

       private String userName;

       private String password;

       public ActionErrors validate(ActionMapping mapping,

                     HttpServletRequest request) {

              ActionErrors errors=new ActionErrors();

              if(userName==null||"".equals(userName)||password==null||"".equals(password)){

                     errors.add("errors",new ActionMessage("login.login.errors"));

              }

              return errors;

       }

       public void reset(ActionMapping mapping, HttpServletRequest request) {

              this.userName=null;

              this.password=null;

       }

       public String getUserName() {

              return userName;

       }

       public void setUserName(String userName) {

              this.userName = userName;

       }

       public String getPassword() {

              return password;

       }

       public void setPassword(String password) {

              this.password = password;

       }

}

如上红色的代码就是当你提交的时候判断的如果为空那么就返回错误

其中用到了两个类1ActionErrors 用于存错误的集合:

2ActionMessage代表一个错误的信息。其中的构造参数里的信息是写在资源文件中的.在这里只是用到它的一个key

2在下面用到的就是在业务中时行判断的代码如下:

/*

 * Generated by MyEclipse Struts

 * Template path: templates/java/JavaClass.vtl

 */

package struts.action;

 

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.action.ActionMessage;

import org.apache.struts.action.ActionMessages;

 

import struts.form.LoginForm;

 

public class LoginAction extends Action {

 

       public ActionForward execute(ActionMapping mapping, ActionForm form,

                     HttpServletRequest request, HttpServletResponse response) {

              LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub

              String id = loginForm.getId() ;

              String password = loginForm.getPassword() ;

              //错误的集合类

              ActionMessages errors = new ActionMessages() ;

              boolean b = true ;

              if(id==null||id.length()==0)

              {

                     b=false ;

                     errors.add("errorid",new ActionMessage("error.id")) ;

              }

              if(password==null||password.length()==0)

              {

                     b=false ;

                     errors.add("errorps",new ActionMessage("error.ps")) ;

              }

             

              if(!id.equals("admin")||!password.equals("123"))

              {

                     if(b==true)

                     {

                     errors.add("errore",new ActionMessage("error.e"));

              }

              }

              if(!errors.isEmpty())

              {

                     //错误被注入

                     //传递错误到页面

                     super.saveErrors(request, errors) ;

                     return mapping.findForward("login") ;

              }

              return mapping.findForward("ok");

       }

}

如上就是在业务处理中使用的:

其中也用到了两个类:1ActionMessages代表多个信息的集合

2ActionMessage代表一个信息的集合

红色的部分的意思是将错误信息存入。然后再转到输入页面

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics