大家好,又见面了,我是全栈君。
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映射能够写成:
代码语言:javascript复制<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属性相应的字符串。与上面配置相应的实体类为:
代码语言:javascript复制public class WelcomeAction extends ActionSupport {
public String execute() {
return SUCCESS;
}
}
动态方法调用(DMI)
一个Action中仅能配置一个method在实际应用中十分不方便,Struts2支持在url中指定调用Action类的不同方法。格式为”Action名!方法名”。
在使用此功能前须要在struts.xml中加入例如以下代码开启DMI:
代码语言:javascript复制<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就可以:
代码语言:javascript复制<action name="buy*" class="struts.action.{1}Action">
<result>/pay.jsp</result>
</action>
通配符的作用域很广,通过action的name能够改变method、class和result的结果等。常常使用能够节约很多时间。可是须要事先良好的一致性格公式。
版权声明:本文博客原创文章,博客,未经同意,不得转载。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117430.html原文链接:https://javaforall.cn