• Struts入门(二) 配置文件的讲解


       

      上一章我们演示了Struts项目的搭建  可以看到里面有几个重要的配置文件  下面我们来说明一下这3个配置文件

      1.web.xml

      2.strtus.xml

      3.struts.properties

    1.web.xml

    我们所学习的是MVC框架  不管是java还是.net 只要是web应用 就需要配置文件 .net中我们使用web.config来进行相关配置  Java中Servlet的应用则需要web.xml的配置

      通常,所有的mvc框架都需要web应用加载一个核心控制器  对于Struts而言 则需要加载

    StrutsPrepareAndExecuteFilter  其他不用管   web应用加载它后  struts2的框架会由它进行加载

    web.xml如下  这里添加了struts2的过滤器配置

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
     3   <display-name>StrutsDemo</display-name>
     4   
     5   <filter>
     6       <filter-name>struts</filter-name>
     7   
     8       <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
     9   </filter>
    10   
    11   <filter-mapping>
    12       <filter-name>struts</filter-name>
    13       <url-pattern>/*</url-pattern>
    14   </filter-mapping>
    15   
    16   <welcome-file-list>
    17     <welcome-file>index.html</welcome-file>
    18     <welcome-file>index.htm</welcome-file>
    19     <welcome-file>index.jsp</welcome-file>
    20     <welcome-file>default.html</welcome-file>
    21     <welcome-file>default.htm</welcome-file>
    22     <welcome-file>default.jsp</welcome-file>
    23   </welcome-file-list>
    24 </web-app>
    View Code

    2.struts.xml

     struts.xml中包含的内容:

      1.全局属性

      2.用户请求和相应Action之间的对应关系

      3.Action可能用到的参数和返回结果

      4.各种拦截器的配置

     1 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd" >
     2 <struts>
     3 
     4     <!-- include节点是struts2中组件化的方式 可以将每个功能模块独立到一个xml配置文件中 然后用include节点引用 -->
     5     <include file="struts-default.xml"></include>
     6     
     7     
     8     <!-- package提供了将多个Action组织为一个模块的方式
     9         package的名字必须是唯一的 package可以扩展 当一个package扩展自
    10         另一个package时该package会在本身配置的基础上加入扩展的package
    11         的配置 父package必须在子package前配置 
    12         name:package名称
    13         extends:继承的父package名称
    14         abstract:设置package的属性为抽象的 抽象的package不能定义action 值true:false
    15         namespace:定义package命名空间 该命名空间影响到url的地址,例如此命名空间为/test那么访问是的地址为http://localhost:8080/struts2/test/XX.action
    16      -->
    17     <package name="com.kay.struts2" extends="struts-default" namespace="/test">
    18         <interceptors>
    19             <!-- 定义拦截器 
    20                 name:拦截器名称
    21                 class:拦截器类路径
    22              -->
    23             <interceptor name="timer" class="com.kay.timer"></interceptor>
    24             <interceptor name="logger" class="com.kay.logger"></interceptor>
    25             <!-- 定义拦截器栈 -->
    26             <interceptor-stack name="mystack">
    27                 <interceptor-ref name="timer"></interceptor-ref>
    28                 <interceptor-ref name="logger"></interceptor-ref>
    29             </interceptor-stack>
    30         </interceptors>
    31         
    32         <!-- 定义默认的拦截器 每个Action都会自动引用
    33          如果Action中引用了其它的拦截器 默认的拦截器将无效 -->
    34         <default-interceptor-ref name="mystack"></default-interceptor-ref>
    35         
    36         
    37         <!-- 全局results配置 -->
    38         <global-results>
    39             <result name="input">/error.jsp</result>
    40         </global-results>
    41         
    42         <!-- Action配置 一个Action可以被多次映射(只要action配置中的name不同)
    43              name:action名称 http://localhost:8080/ProjectName/hello.action
    44              class: 对应的类的路径
    45              method: 调用Action中的方法名
    46         -->
    47         <action name="hello" class="com.kay.struts2.Action.LoginAction">
    48             <!-- 引用拦截器
    49                 name:拦截器名称或拦截器栈名称
    50              -->
    51             <interceptor-ref name="timer"></interceptor-ref>
    52         
    53             <!-- 节点配置
    54                 name : result名称 和Action中返回的值相同 
    55                 type : result类型 不写则选用superpackage的type struts-default.xml中的默认为dispatcher
    56              -->
    57          <result name="success" type="dispatcher">/talk.jsp</result>
    58          <!-- 参数设置 
    59              name:对应Action中的get/set方法 
    60          -->
    61          <param name="url">http://www.sina.com</param>
    62         </action>
    63     </package>
    64 <!--  可以在包外面定义常亮  和struts.properties 写法一致-->
    65   <constant name="struts.i18n.reload" value="true"></constant>
    66 </struts>
    View Code

     3.struts.properties

    这里就列举几个常用的属性 

    这就是三个文件的配置以及说明

    其中第三个文件完全可以写到struts.xml中去

    在package标签外面

    <!--  可以在包外面定义常亮  和struts.properties 写法一致-->
      <constant name="struts.i18n.reload" value="true"></constant>
    </struts>

    这样就可以省去 properties文件中的配置了

  • 相关阅读:
    requireJS 简要介绍和完整例子
    SQL 语句递归查询 With AS 查找所有子节点
    ztree的添加、修改、删除及前后台交互
    JQuery-zTree.js使用范例
    CSS3自定义滚动条样式 -webkit-scrollbar
    jQuery插件定义
    JQuery 插件开发
    jQuery操作复选框checkbox技巧总结 ---- 设置选中、取消选中、获取被选中的值、判断是否选中等
    Xml序列化
    wen7安装oracle 11g出现"未找到文件 E:development_toolsdatabaseoracleinstall_ddbhomeowbexternaloc4j_applicationsapplicationsWFMLRSVCApp.ear"
  • 原文地址:https://www.cnblogs.com/DemoLee/p/6291084.html
Copyright © 2020-2023  润新知