[Java Web]Struts2基础总结(一)

Struts2环境配置
  1. 导入Struts2所需要的jar包
  2. 在WEB-INF/classes(src)目录下创建struts.xml文件
  3. 在web.xml文件中添加Struts过滤器信息
常用配置文件
  1. struts.xml:用于存放Action映射关系、设置Struts配置信息
  2. 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>
  3. struts-default.xml:Struts2的默认配置信息,一般不建议修改
  4. default.properties:Struts2的默认设置信息,同样不建议修改
Action

Struts2的核心功能,一般由两部分组成:struts.xml的Action映射和使用Java编写的Action实体类。在struts.xml中通常使用<action>、<result>、<package>等一系列标签完成Action的映射,它们的属性分别有:
  1. package

    属性

    是否必须

    描述

    name

    包名,作为其它包应用本包的标记

    extends

    设置本包继承其它包

    namespace

    设置包的命名空间

    abstact

    设置为抽象包


  2. action

    属性

    是否必须

    描述

    name

    请求的Action名称

    class

    Action处理类对应具体路径

    method

    指定Action中的方法名

    converter

    指定Action使用的类型转换器


  3. 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时通过约定格式减少工作量,它的用法是使用"*"代替容易变换的单词,然后用{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的结果等。经常使用可以节约许多时间,但是需要事先约定好格式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值