Struts2——Struts2框架的深入了解

来源:互联网 发布:淘宝店铺店招图片尺寸 编辑:程序博客网 时间:2024/05/18 20:10

Struts2框架的深入了解

1.配置详解

(1)常量配置在struts.xml的<constant>标签或web.xml的<init-param>标签。

(2)包用来管理Action和拦截器,常被继承的默认包为struts-default。

(3)包的namespace用来指定命名空间。如果某个包没有设置namespace属性,则为默认包,namespace属性为 “”。如果某个包设置了namespace属性,那么访问其下的Action的URL则是namespace的属性值加上action的name属性的值。如果某个包设置了namespace=“/”,则其为根命名空间。实例分析:如果请求/apple/login,那么系统会首先查找命名空间为apple的包下的名为login的Action。如果没找到,则在默认命名空间找名为login的Action。如果请求/login,那么系统会首先在根命名空间查找名为login的Action。如果没找到,则在默认命名空间找名为login的Action。

2.Action详解

(1)编写Action的实现类,一般要继承ActionSupport类。

(2)使用ActionContext来获取Servlet API,Map getApplication()方法模拟ServletContext实例,static ActionContext getContext()方法返回ActionContext实例,Map getSession()方法获取HttpSession对象,Map getParameters()方法获得所有请求参数。保存在ActionContext实例中的值,作用范围为request。

(3)Action实现xxxAware接口,可以在Action中直接访问Servlet API。有ServletContextAware,ServletRequestAware,ServletResponseAware三个接口,需要实现相应的setxxxAware()方法。

(4)利用ServletActionContext类的几个静态方法,可以直接访问Servlet API,有getPageContext(),getRequest(),getResponse()。

(5)可以在一个Action里写多个方法,表单的action里写Action名!方法名,即可动态调用方法。

(6)一个包含多个方法的Action,可以多次配置,name属性不同即可。同时要指定不同的method属性,对应Action中的方法名。

(7)通配符的使用,例如<action name= “*Action” class= “…” method= “{0}”>,则method的值为*的值。例如,如果请求的URL是/loginAction,则method的属性是login。

3.指定Action的处理结果

(1)struts.xml中,<result>标签的type属性指定了Action返回的视图资源的类型。常用的有chain、disparcher、redirect,默认为disparcher。

(2)配置<result>标签时,可以用{0}表达式或者${参数名}来指定视图资源的名称,也可以在视图资源后附加参数,其中参数名对应Action的属性名。

4.模型驱动

(1)设计模型,即一个JavaBean,属性为请求的参数,要有set和get方法。

(2)Action要实现ModelDriven<模型名>接口,实现getModel()方法。

(3)这样在Action里new出来的模型对象,就自动封装了请求的参数。

5.异常处理

(1)配置拦截器,打开异常映射功能,struts-default.xml中已经开启了异常映射功能,可以查看相关代码。

(2)在struts.xml中配置<exception-mapping>标签,其result属性指定出现异常时要转入的视图(字符串),exception属性指定异常类型。
0 0