struts2_2014.6.12

来源:互联网 发布:四川省政府采购网通知 编辑:程序博客网 时间:2024/06/08 11:31

1.

配置常量三种方式:

1)通过struts.properties文件

2)通过struts.xml文件(推荐)

通过constant元素 <constant name="aa" value="bb" />

3)通过web应用的web.xml文件

配置核心Filter————StrutsPrepareAndExecuteFilter时,

<init-param>

<param-name>aa</param-name>

<param-value>bb</param-value>

</init-param>


struts加载时候默认加载struts.xml  (开发者定义的的默认配置文件) struts-default.xml(struts2 框架自带的配置文件)  struts-plugin.xml(struts2插件默认配置文件)


加载常量顺序:

struts-default.xml----------struts-plugin.xml-----------------struts.xml----------------------struts.properties------------web.xml


通过在struts.xml中 使用include 元素包含其他配置文件来达到把struts.xml分成几部分的效果。

<include file="a.xml" />



2.

Action 类,可以是一个POJO

通过execute()方法处理用户请求如:

public STring execute(){

return resultStr;//返回处理结果字符串

}


系统通过对应的getter和setter方法处理请求参数,所以是否包含Field名不重要。

如果用户HTTP请求包含了名为tip的请求参数,系统会调用Action类的setTip(String tip)方法。


Action接口。

包含5个字符常量ERROR.NONE.INPUT.LOGIN.SUCCESS,execute()方法


ActionSupport类,默认的Action实现类。



Action访问Servlet API(通常是HttpServletRequest、HttpSession、ServletContext)

通过ActionContext类,常用方法:




Action直接访问Servlet API:

通过以实现下接口:


HttpServletResponse实例。


使用ServletActionContext(工具类)访问Servlet API,包含以下静态方法:



3.

Action的配置:

使用包来组织Action,定义Action通过<package.../>下的<action.../>完成。

Struts2框架使用包管理Action和拦截器等。


配置<package../>元素必须指定name属性,还可以指定可选的extends属性,这个属性值必须是另一个包的name属性,表示继承另一个包。自爆可以继承到父包中的配置、拦截器等。

属性如下:


Struts2配置文件从上到下处理,所以父包应该在子包前面定义。

开发者定义的package通常应该继承struts-default包。


命名空间:同一个命名空间里不能有同名的Action,不同的命名空间可以有同名的Action。Struts2不支持为单独的Action设置命名空间,通过为包指定namespace属性来为包下所有Action指定共同的命名空间。通过命名空间用模块化方式来组织Action。

指定了命名空间后,该报下所有Action处理URL应该是命名空间+Action名,如:

http://localhost:8888/namespace/book/getBooks.action           (namesapce="/book")



配置Action时,如果为Action元素指定class属性,那么该属性指定了Action的实现类。如果不指定class属性,系统默认使用系统的ActionSupport类。

通过<result.../>元素指定逻辑视图和物理视图的映射。可以指定method属性,让Action调用指定方法,二不是execute来处理用户请求

-指定name属性时使用模式字符串,然后在class.method.<>result../>子元素中使用{N}代表第N个*匹配的字符串。


Action动态调用:设置struts.enable.DynamicMethodInvocation常量为true。


对于超级链接请求,尽量不让超级链接直接链接到某个视图资源,把所有请求发送给Struts2框架,让框架处理用户请求。对于简单的超级链接请求,通过定义name为*的Action(放在最后定义,除非请求URL与Action的name属性绝对相同,否则按照先后顺序来决定由哪个Action处理用户请求。)实现。


通过<default-action-ref../>设置默认Action,当用户请求找不到对应Action时,系统默认的Action将处理用户请求。该action的name属性指向另一个有效的action

0 0
原创粉丝点击