读书人

struts编程式错误-html:error与html:m

发布时间: 2012-10-23 12:12:21 作者: rapoo

struts编程式异常--html:error与html:message

struts编程式异常过程:

?截获异常信息;创建异常信息;传递异常信息;转向相应页面

?

<html:errors/>显示异常信息

??

<html:messages id="msg" message="true"><bean:write name="msg"/></html:messages>
当message="true"时输出的是程序中的message信息,而message为false或空时则默认输出异常信息即与html:error一样

?如下:

package com.lwf.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 com.lwf.struts.form.LogonForm;import com.lwf.struts.util.UserManageEntity;import com.lwf.struts.util.UserNotFoundException;public class LogonAction extends Action {public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {ActionMessages errors = new ActionMessages();ActionForward forward = new ActionForward();LogonForm logonForm = (LogonForm)form;String name = logonForm.getUsername();String pwd = logonForm.getPassword();try {UserManageEntity.UserManager(name);errors.add("logonerror1", new ActionMessage("error.login.user"," myerrmsg"));this.saveMessages(request, errors);request.getSession().setAttribute("user", logonForm);forward = mapping.findForward("success");} catch (UserNotFoundException e) {errors.add("logonerror2", new ActionMessage("error.login.again"," error2"));this.saveErrors(request, errors);forward = mapping.findForward("error");}return forward;}}

?

?

注意程序中:

saveMessages与saveErrors两个方法的调用

?

package com.lwf.struts.util;public class UserManageEntity {public static void UserManager(String username) throws UserNotFoundException{if(username!=null && !username.equals("admin")){throw new UserNotFoundException();}}}

?

package com.lwf.struts.util;public class UserNotFoundException extends Exception {public UserNotFoundException(){}public UserNotFoundException(String message){super(message);}}

?

?

struts还规定在资源文件中定义以下属性

errors.header= <UL>errors.prefix= <LI>errors.suffix= </LI>errors.footer= </UL>

?

如果连续有多条异常信息那么每一条会显示在LI中,多条信息会显示在UL中.

如果我们想每一条异常信息显示为红色字体那么可以这样做:

errors.header= <UL>errors.prefix= <LI><font color="red">errors.suffix= </LI></font>errors.footer= </UL>

?

读书人网 >编程

热点推荐