您的位置:首页 > 编程语言 > Java开发

Struts2的配置-2.配置异常、视图、拦截器、验证器

2012-10-07 20:38 477 查看

配置异常

异常映射是能够用来处理Action中抛出的异常,其核心思想是在Action执行期间抛出的异常自动捕获,交给预先设定的result,在struts2中使用exception-mapping来影射异常,映射分全局和局部映射。按照博客文章struts2的配置-1所讲的程序基础上,演示这个例子。

首先配置struts.xml信息,建立异常映射。

<action name="login"class="www.gongqingkui.cn.LoginAction">
                            <exception-mappingresult="exception"exception="java.lang.Exception"></exception-mapping>
                            <resultname="exception">/Exception.jsp</result>
</action>


可以看出,loginAction程序中的异常一旦被捕获,将会传递到名为exception的result中去,显示Exception.jsp页面。而LoginAction则需要抛出异常,如下所示:

if(condiction){
                            thrownew SQLException("Sql Error");
}


这里抛出的异常是SQLException,属于Exception的子类,所以没问题。执行时显示Exception.jsp页面信息。

Struts2框架支持的视图资源类型:action执行完成后,返回一个字符串,这个字符串对应视图资源的逻辑名,利用action内配置的result资源可以将结果呈献给用户。result常用的有dispatcher(默认),redirect和redirect-action等类型。其中redirect相当于执行HttpServletResponse的sendRedirect方法,这个方法并不能带着action,所以重定向后原来的action实例不能再使用。Redirect-action则是带action来跳转的,他的actionName属性指示了要跳转到的action,这个跳转视图资源类型是推荐使用的。

使用Map类型的request,session和application方法为:

Map<String,Object> a =(Map<String,Object>)ActionContext.getContext().get("request");
a.put("userLevel", "user");


变量可以存储到三个不同类型的数据中去,在jsp显示页面中使用相应方法session.getAttribute取出显示。Request、session、application都是Map类型的,必须通过ActionContext来提取。

拦截器

拦截器由ActionProxy调用,在Action执行前执行,所有拦截器调用完成后,再由拦截器的ActionInvocation执行相应方法的invoke方法。在Action执行完成后,反序执行拦截器。自定义拦截器时需要继承AbstractInterceptor这个抽象类,这个抽象类实现了Interceptor接口中的方法。

验证器

ActionSupport类实现了Validateable接口,但是对于validate方法只是一个空实现,所以我们需要重写validate方法。验证需要使用配置文件,配置文件放在和action同一个目录下,命名规则为ActionName-AliasName-validation.xml。

参考文献

1. Struts2的配置-1

2. Struts2工作流程理解

3. 理解Struts

4. Struts的简单使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: