chapter2 详解Action的基本配置

来源:互联网 发布:现货白银分钟线数据 编辑:程序博客网 时间:2024/05/17 22:30

 一、 Action访问ServletAPI

a)   使用ActionContext类:

i.    创建对象:ActionContextac = ActionContext.getContext();

ii.   常用方法 put, get/setApplication, 静态getContext,getParameters, get/setSession

b)  使用ServletActionContext工具类:常用静态方法getPageContex, getRequest, getResponse, getServletContext

二、 详解Action的基本配置

a)   使用Action的动态方法调用

i.    DMI(Dynamic MethodInvocation) : action=”ActionName!MethodName”

ii.   如需禁用则需配置相对应常量

b)  指定Method属性

i.    配置action节点时,指定method属性

c)   使用通配符

i.    在配置action的节点时,在name属性中可以使用多个*通配符,在class,method,result中都可以使用

三、 Action的匹配方式

a)   完全匹配

b)  模糊匹配(通配符)

c)   定义通用Action (所有请求不再指向视图资源)

四、 配置处理结果 Result

a)   name属性:逻辑视图名

b)  type属性:指定结果类型

常用结果类型:

i.    dispatcher :默认类型(服务器分发)

ii.   redirect :重定向

iii.  redirectAction :重定向到另一个action

五、 异常处理

a)   使用try…catch进行异常捕获

b)  声明式异常捕获

i.    配置global-results

ii.   配置全局global-exception-mappings

iii.  在某个action配置节点中单独配置exception-mapping

iv.  在action处理中抛出异常

v.   异常页面输出异常信息

 

总结

 

       1.JSTL标签和struts标签使用方式不同

 

       2.struts有几个parameter就要在action中设置几个属性可以通过设置不同的form区分

 

       3.获取内置对象,Action访问ServletAPI

第一种低耦合struts新对象获取

ActionContext ac =ActionContext.getContext();

Map<String,Object> session =  ac.getSession();

session.put("pet", pi);

第二种使用ServletActionContext工具类

HttpSession session =ServletActionContext.getRequest().getSession();

Map<String, Object> map =ServletActionContext.getContext().getApplication();

 

       4.详解Action的基本配置

使用Action的动态方法调用,通过修改action实现

i.     DMI(Dynamic Method Invocation) : action=ActionName!MethodName

ii.    如需禁用则需配置相对应常量

<form name="pet"method="post" action="/epet/Login!execute">   在action后面加上方法名称

 <constant name="struts.enable.DynamicMethodInvocation"value="false"></constant>关闭动态方法调用

指定Method属性

i.     配置action节点时,指定method属性

<action name="Login" class="com.feiduit.tjw.action.Login" method="execute">对应action中的execute()

使用通配符

i.在配置action的节点时,在name属性中可以使用多个*通配符,在class,method,result中都可以使用

<action name="User_*"class="action.UserAction" method="{1}">

<actionname="*"><resultname="success">/{1}.jsp</result></action> 一般要写通配action,查询顺序要精确再通配先前再后

<action name="*Action_*"class="struts.action.{1}Action" method="{2}">  2个通配符,按顺序

<resultname="success">/{2}_success.jsp</result>

 

       5.配置处理结果 Result

a)      name属性:逻辑视图名,也就是方法的String返回值

b)     type属性:指定结果类型

常用结果类型:

i.          dispatcher:默认类型(服务器分发)

ii.    redirect :重定向

       iii.   redirectAction 重定向到另一个action

 

       6.获取表单对象的值

1.<input type="text"name="petInfo.pet_owner_email" value="">   设置表单对象

2.private PetInfo petInfo; Action中封装对象属性

3.pi.setPet_owner_email(getPetInfo().getPet_owner_email());   通过对象来接收值

 

    7.异常处理

a)      使用try…catch进行异常捕获

b)     声明式异常捕获

i.          配置global-results

ii.    配置全局global-exception-mappings

iii.   在某个action配置节点中单独配置exception-mapping

iv.    action处理中抛出异常

        v.    异常页面输出异常信息

       <global-results>

                     <resultname="error">/exception.jsp</result>

                     <resultname="exception">/exception.jsp</result>

                     <resultname="login">/login.jsp</result>

              </global-results>

              <global-exception-mappings>

                     <exception-mappingresult="error"exception="java.sql.SQLException"></exception-mapping>

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

              </global-exception-mappings>

先进<global-exception-mappings>访问符合要求的异常,再根据error匹配符合要求的结果,跳转页面

 

 


原创粉丝点击