struts2--全局结果集和异常处理配置

1、新建一个web工程,添加struts支持

2、在src下新建一个包com.etc.action,在包下新建一个类ResultAction:

package com.etc.action;

import java.io.IOException;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class ResultAction extends ActionSupport{
	private static final long serialVersionUID = 6936429395630165916L;
	public String show(){
		return "success";
	}
	public String create(){
		return "success";
	}
}

3、配置struts.xml
<action name="show" class="com.etc.action.ResultAction" method="show">
	<result name="success">/success.jsp</result>
</action>
<action name="create" class="com.etc.action.ResultAction" method="create">
	<result name="success">/success.jsp</result>
</action>
4、在WebRoot下新建两个页面success.jsp和error.jsp如下:

  <body>
	访问成功
  </body>
  <body>
	访问出错
  </body>
5、页面运行:http://localhost:8080/struts-result2/show.action,跳转到success.jsp页面

http://localhost:8080/struts-result2/create.action,跳转到success.jsp页面



发现:show.action和create.action最终返回的都是同一个页面,success.jsp,在struts.xml中配置两次,显得很麻烦,所以我们可以将struts.xml中的代码更改为:

<!-- 全局结果集 -->
<global-results>
	<result name="success">/success.jsp</result>
	<result name="error">/error.jsp</result>
</global-results>

<action name="show" class="com.etc.action.ResultAction" method="show">
</action>
<action name="create" class="com.etc.action.ResultAction" method="create">
</action>
这样,只需要配置一个全局结果集,其余都是返回到success.jsp页面的结果集中不需要再进行配置

如果将ResultAction中的show()方法更改如下:
public String show(){
	int i = 0;
	int j = 3/i;
	System.out.println("j="+j);
	return "success";
}
运行:http://localhost:8080/struts-result2/show.action,结果如下:

显然,这样直接将错误暴露在页面上,显得很不好看,那么我们可以在struts.xml中配置 异常处理 代码如下:

<global-exception-mappings>
	<exception-mapping result="error" exception="java.lang.Exception"></exception-mapping>
</global-exception-mappings>
这样,java.lang.Exception将会捕捉到ResultAction类中的异常,然后转向error结果集,从而转向error.jsp页面,如下:



这样,整个页面变得好看许多。


结论:

全局结果集的配置:是为了返回到同一个页面时,可以简写代码,在一个地方配置即可,无需配置多次。

异常处理的配置:是为了让页面友好化,不直接将错误代码返回到页面,而是提示相应的错误信息。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值