`

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>

 

分享到:
评论

相关推荐

    struts2中核心知识点(职场必备)

    实现步骤包括创建不同语言的资源文件(如`message_en.properties`和`message_ch.properties`),并在`struts.xml`中配置资源文件。 8. **定义Action的三种方式和获取Servlet对象**: - 实现`Action`接口。 - 继承...

    Struts2-ActionError-ActionMessage-Example

    ActionError类是用来存储错误信息的,它继承自`java.lang.Throwable`,但通常不抛出异常。当用户输入的数据不符合业务逻辑或验证规则时,开发者可以通过ActionError添加错误信息到ActionContext中,以便在JSP页面上...

    Java程序员笔试题

    - **errorPage属性:** 指定当发生特定异常时显示的错误页面。 - **exceptionType属性:** 指定哪些类型的异常会导致转向错误页面。 **7. JSP使用JavaBeans** - **JavaBeans:** 遵循特定设计模式的Java类,通常...

    Struts 声明式异常处理和个性化异常处理

    除了声明式异常处理,Struts还支持编程式异常处理。这种方式允许在Action类的execute方法中捕获和处理异常,但可能导致代码混乱且不易维护。 在实际应用中,我们可能会遇到一些特定的异常情况,比如业务逻辑错误。...

    java面试题题库详解

    - **异常类层次结构:** `Throwable` 是所有异常类的父类,包括 `Error` 和 `Exception`。 - **自定义异常:** 如何定义自己的异常类。 #### 4. Java中的访问修饰符(public, private, protected, 默认) **知识点...

    struts课件ppt

    8. **异常处理**:Struts提供了ActionError和ActionMessages机制,用于处理业务逻辑中的异常,并将错误信息展示给用户。 通过刘晓华老师的课件,你可以系统地学习如何使用Struts框架进行Web应用开发,掌握Bean标签...

    struts exception 编程实例

    addFieldError("errorMessage", "发生了自定义异常"); return INPUT; // 将控制权返回到输入页面,显示错误信息 } catch (Exception e) { LOG.error("未知错误", e); throw e; // 未处理的异常交给Struts的异常...

    Struts2+JSON完美是用

    当Struts2与JSON结合时,它可以实现服务器端与客户端的高效数据交换。这种结合主要体现在以下几个方面: - **Action配置**:在Struts2中,你可以为每个Action配置一个结果类型为“json”的结果。这将在Action执行...

    struts2.1配置

    同时,可以在JSP页面中引入Struts2的标签库,例如`&lt;%@ taglib prefix="s" uri="/struts-tags"%&gt;`,这样就可以使用Struts2提供的标签进行编程。 6. **JSTL标签库配置**:JSTL(JavaServer Pages Standard Tag ...

    Struts2Demo

    Struts2Demo是一个基于Struts2框架的示例项目,主要展示了如何利用Struts2...同时,这个项目也可以作为进一步探索Struts2其他高级特性的起点,如拦截器的自定义、AOP(面向切面编程)的应用、 strut2与Spring的集成等。

    精通struts.基于MVC的.java.web设计与开发.zip

    8. **异常处理**:Struts的异常处理机制允许开发者定义全局和特定Action的异常处理策略,通过配置文件定义error-page或通过Action的throws声明。 9. **Tiles框架**:Tiles是Struts的一个扩展,用于构建复杂的页面...

    struts1和struts2的区别

    不过,Struts1.x与Struts2的Action模型很大的区别。 Struts2和Struts1.x的差别,最明显的就是Struts2是一个pull-MVC架构。这是什么意思呢?从开发者角度看,就是说需要显示给用户的数据可以直接从Action中获取,而不...

    struts国际化功能

    接着,为了使用这些资源文件,我们需要在Struts配置文件(struts-config.xml)中声明一个`&lt;message-resources&gt;`元素,指定资源文件的位置。例如: ```xml &lt;struts-config&gt; &lt;global-exceptions/&gt; &lt;global-forwards...

    struts in action 源码

    Struts提供了全局的异常处理机制,通过定义ActionError和ActionMessage,可以在出现异常时统一处理并展示给用户。 **拦截器(Interceptors)** Struts 2引入了拦截器,它们是实现AOP(面向切面编程)的关键。拦截...

    struts2拦截器详述ppt

    ### Struts2拦截器详述 #### 一、理解拦截器 ##### 1.1 什么是拦截器? 拦截器(Interceptor)是面向切面编程(AOP)中的一项关键技术,主要用于在方法或字段被访问之前对其进行拦截,并在访问之前或之后加入特定...

    struts2 上传文件超过最大值解决办法

    2. **定位`struts.multipart.maxSize`**:查找与文件上传相关的配置项,其中`struts.multipart.maxSize`是关键。 3. **调整大小限制**:将`struts.multipart.maxSize`的值更改为所需的大小。例如,如果希望支持最大...

    一个很好的Struts例子

    Struts是Java Web开发中的一个经典框架,由Apache软件基金会维护,主要用于构建MVC(Model-View-Controller)架构的应用程序。它简化了Web应用的开发流程,通过提供一种结构化的方式来组织代码,使得开发者可以更...

    Struts2中的validation_多国语言版 国际化i18n+struts2数据校验.zip

    通过修改或创建主题,我们可以控制错误信息的CSS样式,如`errorMessage格式样式表css.txt`所示,这可以增强错误提示的可读性和美观性。 至于`.txt`文件中提到的异常,可能是因为某些情况下,即使校验异常,Struts2...

Global site tag (gtag.js) - Google Analytics