struts-错误处理

ActionForm前端错误处理:
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.yourcompany.struts.form;

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 passwd;

	private String account;

	//validate函数里面进行前端错误验证
	public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
		
		ActionErrors errors=new ActionErrors();//错误集合,专门容纳ActionError,当内部有ActionError时,认为发生了前端错误
		if(account.length()==0){//账号为空
			ActionMessage error=new ActionMessage("error.null","account");//第一个参数是消息内容key,第二个参数是取代{0}的值,
			errors.add("account",error);//第一个参数是对这个error加一个属性标记
		}else if(account.length()>10||account.length()<6){//账号长度不对
			ActionMessage error=new ActionMessage("error.leangth","account","6","10");//第一个参数是消息内容key,第二个参数是取代{0}的值,
			errors.add("account",error);//第一个参数是对这个error加一个属性标记
		}
		if(passwd.length()==0){//密码为空
			ActionMessage error=new ActionMessage("error.null","password");//第一个参数是消息内容key,第二个参数是取代{0}的值,
			errors.add("passwd",error);//第一个参数是对这个error加一个属性标记
		}else if(passwd.length()>10||passwd.length()<6){//账号长度不对
			ActionMessage error=new ActionMessage("error.leangth","password","6","10");//第一个参数是消息内容key,第二个参数是取代{0}的值,
			errors.add("passwd",error);//第一个参数是对这个error加一个属性标记
		}
		return errors;
	}


	public void reset(ActionMapping mapping, HttpServletRequest request) {
		// TODO Auto-generated method stub
	}


	public String getPasswd() {
		return passwd;
	}

	/** 
	 * Set the passwd.
	 * @param passwd The passwd to set
	 */
	public void setPasswd(String passwd) {
		this.passwd = passwd;
	}

	/** 
	 * Returns the account.
	 * @return String
	 */
	public String getAccount() {
		return account;
	}

	/** 
	 * Set the account.
	 * @param account The account to set
	 */
	public void setAccount(String account) {
		this.account = account;
	}
}
Action后端错误处理:
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.yourcompany.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionErrors;
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 com.yourcompany.struts.form.LoginForm;

/** 
 * MyEclipse Struts
 * Creation date: 07-27-2017
 * 
 * XDoclet definition:
 * @struts.action path="/login" name="loginForm" input="/form/login.jsp" scope="request" validate="true"
 */
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 account=loginForm.getAccount();
		System.out.println("得到登陆请求");
		if(account.equals("JohnKate")){
			System.out.println("得到名为JohnKate的人的登陆请求");
			ActionMessages errors=new ActionMessages();//错误集合,专门容纳ActionError,当内部有ActionError时,认为发生了前端错误
			ActionMessage error=new ActionMessage("error.login",account);
			errors.add("Login",error);
			//errors保存起来
			this.saveErrors(request, errors);
			
			return mapping.getInputForward();
		}
		return null;
	}
}
jsp页面显示:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>My JSP 'Login1.jsp' starting page</title>
  </head>
  
  <body>
  <html:form action="/login">
    <bean:message key="info.input.account"/><html:text property="account" /><html:errors property="account"/><br>
    <bean:message key="info.input.passwd"/><html:password property="passwd"/><html:errors property="passwd"/><br>
    <html:submit/><html:cancel/>
  </html:form><hr>
  <html:errors property="Login"/>
  </body>
</html>
资源文件:
# Resources for parameter 'com.yourcompany.struts.ApplicationResources'
# Project Prj7_1
#这是资源文件

info.input.account =Please inout account:
info.input.passwd =please input passwd:
#可以传参数,参数用{0}....{4}表示
info.input=<font color=red>Please input {0};</font>
error.null={0} cannot be null!
error.leangth=length of {0} must between {1} and {2}!
error.login={0} is in black list!!




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值