三、Action及异常处理

本文详细介绍了Struts2中的Action配置、动态方法调用、通配符使用、异常处理等核心概念。Action是Struts2的核心,可以通过配置Action实现业务分发。异常处理部分阐述了全局和局部异常的配置,以及如何在execute方法中处理异常。
摘要由CSDN通过智能技术生成

一、Action介绍

在Struts2中,Action是最重要的,因为struts2是由多个Action组成的;比如要对业务进行分发都需要使用Action;

Struts2相比Struts1,采用低侵入式设计,即一个普通的Java类也可以作为一个Action,不一定要继承或实现Action接口;

而定义Action通常需要遵循几个规范:

1.可以选择继承ActionSupport;

2.重写public String execute()throws Exception 方法,此方法是访问Action默认调用的方法(当然可以自己设定调用任意方法,此配置需要在struts.xml进行);

3.Action类中的属性是用于封装HTTP请求、页面结果数据的在访问Action时,如果带有请求参数,则会通过params拦截器对Action同名的属性进行赋值


 Action和ActionSupport:用于规范action类的处理;


二、配置Action

我们在struts.xml中配置Action;

模板:

<struts>
<constant name="struts.devMode" value="true"></constant>
<package name="" extends="struts-default" namespace="" >
	<action name="" class="">
                 <param name="name">xiazdong</param>
   		 <result>1.jsp</result>
	</action>
</package>
</struts>

配置Action规范:<action>元素必须在<package>中;

下面开始介绍配置action时的常用元素;

1.<package>

package能够用几个属性:

(1)name:表示包名称,通过随意指定即可;

(2)extends:继承哪个父包,如果继承了某个父包,则会继承父包的action;通常我们需要继承 struts-default ,此package定义了内建拦截器

(3)namespace:定义命名空间,如果不指定,则为默认的命名空间;如果为"/",则表示根命名空间;

(4)abstract:不常用,如果为true,则不能定义action;

举例:

<package name="myPackage" namespace="/" extends="struts-default">

</package>

默认命名空间和根命名空间:

默认命名空间是一个很特殊的命名空间,如果要访问一个action,最后都会在默认命名空间中寻找;

比如/aaa/bbb.action,首先先去命名空间为"/aaa"中去找,如果找不到,则去默认命名空间中寻找bbb.action;

而根命名空间只是一个普通的命名空间;

访问某个action时的URL 通常为:  http://localhost:8080/ApplicationName/Namespace/ActionName.action;


命名空间的查找规则:

比如 http://localhost:8080/StrutsProject/a/b/c/d/aa.action;

1.查找是否存在/a/b/c/d 命名空间

    如果不存在,则跳到步骤2

    如果存在则查找是否存在aa.action

        如果不存在该action,则到默认命名空间中查找是否存在aa.action;

        如果存在即可;

2.查找是否存在/a/b/c 命名空间

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值