Struts2环境配置
- 进口Struts2的需要jar包
- 在WEB-INF/classes(src)文件夹下创建struts.xml文件
- 在web.xml文件里加入Struts过滤器信息
经常使用配置文件
- struts.xml:用于存放Action映射关系、设置Struts配置信息
- web.xml:用于配置容器的Struts过滤器,一般配置例如以下:
<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
- struts-default.xml:Struts2的默认配置信息,一般不建议改动
- default.properties:Struts2的默认设置信息。相同不建议改动
Action
Struts2的核心功能,一般由两部分组成:struts.xml的Action映射和使用Java编写的Action实体类。在struts.xml中通常使用<action>、<result>、<package>等一系列标签完毕Action的映射,它们的属性分别有:
- package
属性
是否必须
描写叙述
name
是
包名。作为其他包应用本包的标记
extends
否
设置本包继承其他包
namespace
否
设置包的命名空间
abstact
否
设置为抽象包 - action
属性
是否必须
描写叙述
name
是
请求的Action名称
class
否
Action处理类相应详细路径
method
否
指定Action中的方法名
converter
否
指定Action使用的类型转换器 - result
属性
是否必须
描写叙述
name
否
Action返回视图名称。默觉得success
type
否
返回结果类型,默觉得dispatcher
一个简单地Action映射能够写成:
<package name="admin" extends="struts-default"> <action name="welcome" class="struts.action.WelcomeAction"> <result>/welcome.jsp</result> </action> </package>
Action实体类须要继承ActionSupport类而且重写他的execute的方法(或者其它的方法,无參返回String类型而且与action标签中method属性相应就可以)。而且返回与result标签name属性相应的字符串。与上面配置相应的实体类为:
public class WelcomeAction extends ActionSupport { public String execute() { return SUCCESS; } }
动态方法调用(DMI)
一个Action中仅能配置一个method在实际应用中十分不方便,Struts2支持在url中指定调用Action类的不同方法。格式为"Action名!方法名"。
在使用此功能前须要在struts.xml中加入例如以下代码开启DMI:
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
之后在Action类中加入返回值为String类型的相应方法就可以轻松调用。
通配符(wildcard)
Struts2支持通配符操作。使得在须要配置大量action时通过约定格式降低工作量。它的使用方法是使用"*"取代easy变换的单词,然后用{n}取出。n代表第n个通配符。比如一个程序须要有4个Action。名称分别为DogAction、CatAction、BirdAction和FishAction。
假设依照之前的方法则须要配置4个action映射关系。可是使用通配符后仅仅须要以下一个action就可以:
<action name="buy*" class="struts.action.{1}Action"> <result>/pay.jsp</result> </action>
通配符的作用域很广,通过action的name能够改变method、class和result的结果等。常常使用能够节约很多时间。可是须要事先良好的一致性格公式。
版权声明:本文博客原创文章,博客,未经同意,不得转载。