Struts03-struts配置

来源:互联网 发布:单片机的输出电压多大 编辑:程序博客网 时间:2024/05/18 03:39

一.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目录。)
0 0
原创粉丝点击