Struts03-struts配置

一.struts2配置

注意1: 
在web.xml文件中,struts的核心过滤器为:

 <!-- 引入structs核心过滤器 -->
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>

如果想引入其他过滤器,要放在struts的核心过滤器的上面。 
注意2: 
servlet可以和structs一起使用,但是在:

<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

中,struts对你访问的所有资源都进行了处理,所以直接用servlet会有问题,所以可以对struts限定。

1. struts2的action开发的几种方式

方式1:继承ActionSupport

extends ActionSupport

如果用struts的数据效验功能,必须继承此类!

方式2:实现Action接口

public class UserAction3 implements Action {

     // Action中业务处理方法
     public String login() {
          System.out.println("UserAction.login()");
          return "success";
     }

     @Override
     public String execute() throws Exception {
          return null;
     }
}

方式3:不继承任何类,不实现任何接口

2.通配符

通配符: 
在struts配置信息中,可以用*与{1}可以优化配置!
  <action name="user_*" class="com.demo.struts_config.Useraction" method="{1}">
        </action>

3.struts中路径匹配原则


4.struts常量

struts默认采用的编码是utf-8: 

Struts中默认访问后缀:

Struts1中默认访问后缀是*.do
*Struts2中默认访问后缀是*.action*

如何修改默认访问后缀:

  1. Struts2的.action访问后缀在哪里定义?

    在文件Struts-core-2.3.jar/org.apache.struts/default.properties 
    中找到: 
    struts.action.extension=action,,

  2. 在struts.xml中通过常量修改 
    指定访问后缀为action/do/没有访问后缀都可以
 <constant name="struts.action.extension"
> value="action,do,"></constant>
value="action,do," 访问后缀:action/do/不带后缀 
value="action,do" 访问后缀:action或do 
value="action" 只能是action

动态方法调用语法:

actionName+!即为动态调用,如:
  动态方法调用: http://locahost:8080/struts02/user!login
          <action name="user" class="cn.itcast.b_config2.UserAction">
               <result name="success">/index.jsp</result>              
          </action>
        

5.struts2的全局配置、配置的各项默认值
1. 配置全局跳转视图
<!--配置全局跳转视图  -->       <global-results>            <result
> name="success">/index.jsp</result>        </global-results>
>               <action name="user_*" class="com.demo.struts_config.Useraction" method="{1}">       </action>




        <action name="test" class="com.demo.struts_config.Testaction" method="execute">
            <!--返回结果标记success对应的页面在当前页面中没有配置,所以会去找全局配置  -->
        </action>

其中全局跳转视图一定要放在action的上面不然不满足dtd的语法。

2.配置各项默认值 
如果action中方法是execute则method可以不用写。

<!-- 配置各项默认值 -->
         <!-- 
             name  只配置了访问路径名称
             class 默认执行的action在struts-default有配置
                    <default-class-ref class="com.opensymphony.xwork2.ActionSupport" />
             method  默认为execute
             默认的方法execute返回值为success,对应的页面去全局视图找。

          -->
         <action name="test"></action>

<!-- 什么情况不配置class? 即处理的aciton -->
        <!-- 答案: 当只是需要跳转到WEB-INF下资源的时候。 -->
         <action name="test2">
            <result name="success" >/WEB-INF/index.jsp</result>
         </action>
不能用重定向,重定向访问不到web-inf目录下。 
(地址虽然正确,但是tomcat拦截了,不让外部访问web-inf目录。)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值