struts2捕获action类异常

首先是STRUTS.XML的配置,重点在于配置文件:

<!-- struts2捕获action类异常 -->

<global-results>

<result name="error">/error.jsp</result>

</global-results>

<global-exception-mappings>

<exception-mapping result="error" exception="java.lang.Exception"></exception-mapping>

</global-exception-mappings>

这样一块。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

  <!--   采用注解的方式 -->

  	<constant name="struts.enable.DynamicMethodInvocation" value="true" />
    <constant name="struts.devMode" value="true" /> 

    <package name="default" namespace="" extends="struts-default">
        <!-- struts2捕获action类异常 -->
        <global-results>
			<result name="error">/error.jsp</result>
		</global-results>
		<global-exception-mappings>
			<exception-mapping result="error" exception="java.lang.Exception"></exception-mapping>
		</global-exception-mappings>
    	<action name="link" class="com.test.action.LoginAction">
    	    <result>/result.jsp</result>
    	</action>
    	<action name="linkIOC" class="com.test.action.LoginActionIOC">
    	    <result>/result.jsp</result>
    	</action>
    </package>

    <!-- Add packages here -->

</struts>

测试类

package com.test.action;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{

	/**
	 *
	 */
	private static final long serialVersionUID = 1L;

	private Map request;
	private Map session;
	private Map application;

	public LoginAction()
	{
		System.out.println("loginaction构造函数!");
		request=(Map) ActionContext.getContext().get("request");
		session=ActionContext.getContext().getSession();
		application=ActionContext.getContext().getApplication();
	}

	public String execute()
	{
		//System.out.println(request);
		//System.out.println(session);
		//System.out.println(application);

		int i=100/0;/*这个地方会抛出异常,默认情况下struts2是不会捕获异常,直接抛出*/

		request.put("msg", "欢迎你!");
		return SUCCESS;
	}

}

输出结果

时间: 2024-10-22 11:41:56

struts2捕获action类异常的相关文章

3.Struts2中Action类的三种写法

一.普通的POJO类(没有继承没有实现) public class DemoAction1 { public String execute(){ System.out.println("DemoAction1是普通的POJO类..."); return null; } } <!-- 普通的POJO类 --> <action name="action1" class="com.struts2.web.action2.DemoAction1&

5.struts2中Action类中获取ServletAPI的三种方式

**Servlet的API的访问(开发中偶尔会使用到)** 1.在Action类中也可以获取到Servlet一些常用的API,有如下三种方式获取 * 完全解耦合的方式 * 使用接口注入的方式 * 使用ServletActionContext中静态方法直接访问Servlet的API * 需求:提供JSP的表单页面的数据,在Action中使用Servlet的API接收到,然后保存到三个域对象中,最后再显示到JSP的页面上. * 提供JSP注册的页面,演示下面这三种方式: <h3>注册页面</

struts2的action类详解

Action类的书写方式 方式1 方式2 方式3

struts2中action类的详解

原文地址:https://www.cnblogs.com/Terlong/p/9229781.html

2018.11.19 Struts2中Action类的书写方式

方式1: 方式2: 方式3 原文地址:https://www.cnblogs.com/qichunlin/p/9984490.html

Struts2-----5、Struts2实现Action

对于Struts2应用的开发者而言,Action才是应用的核心,开发者需提供大量的Action类,并在struts.xml文件中配置Action:Action类里包含了对用户请求的处理逻辑,Action类也被称为业务控制器 相对Struts1而言,Struts2采用低侵入方式的设计,Struts2不要求Action类继承任何Struts2基类或实现任何Struts2接口:在这种设计方式下,Struts2的Action类是一个普通的POJO(通常应包含一个无参的execute方法),从而有很好的代

struts2的Action(四)

实现Action Action是struts2应用的核心,开发中需要大量的Action类,并在struts.xml中配置Action.Action中包含了对用户请求的处理逻辑,Action类也被称为业务控制逻辑器. struts2采用低侵入式设计,它不要求Action类继承任何的struts的基类或者实现任何struts接口.struts2的Action类是普通的POJO类(通常应该带一个无参的方法),从而有很好的代码复用性. struts2通常直接使用Action来封装HTTP参数,因此,,A

Struts2中的Action类(解耦方式,耦合方式)

一.解耦方式 特点:对web资源进行了封装,便于单元测试. 实现:ActionContext和接口方式 1.ActionContext 特点:Action执行的上下文对象.保存了执行Action所需要的所有对象 使用:1.获取ActionContext  2.获取application,session.request,parameter资源  3.打印显示 1.获取ActionContext ActionContext.getContext() 调用自身的静态方法得到实例 采用的是单例模式 可以

Struts2系列笔记(3)---Action类的3种书写方式

Action类的3种书写方式 本文主要写有关写Action类的3种书写方式: (1)第一种 Action可以是POJO (简单模型对象)  不需要继承任何父类 也不需要实现任何接口 (2)实现Action接口 (3)继承ActionSupport(推荐) 那我们先来书写第一种: (1)第一种 Action可以是POJO (简单模型对象)  不需要继承任何父类 也不需要实现任何接口 1 //这里其实就是一个普通的类,类里面的方法可以任意写,如果写execute()方法那就代表默认执行它 2 pub