zoukankan      html  css  js  c++  java
  • Struts2学习-struts.xml文件配置

    学习框架过程中,一直对框架中的配置文件比较难理解,特搜集资料简要记录一下struts.xml文件遇到的问题。

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE struts PUBLIC
     3     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
     4     "http://struts.apache.org/dtds/struts-2.0.dtd">
     5  
     6 <struts>
     7   <package name="basicstruts" extends="struts-default">
     8  
     9   <action name="showProduct" class="com.how2java.action.ProductAction" method="show">
    10     <result name="show">show.jsp</result>
    11   </action>   
    12   <action name="addProduct" class="com.how2java.action.ProductAction" method="list">
    13     <result name="list">list.jsp</result>
    14   </action>   
    15  
    16 </package>
    17  
    18 </struts>

    1.包(package)用于管理Action,一个包中可以有多个Action。

      name属性:包名,一个项目中不能有同名的包。

      extends属性:开发必须继承struts-default包。

      method属性:对应action类中的具体方法。

    2. Action

    2.1 action配置

      name:action名称,用来访问action路径

      class:类名

    2.2 result配置

      name:每个action方法都要返回一个String类型的值,这个值必须与这个name相对应。

      type:跳转类型

           默认为dispatcher(转发),将跳转到result文本节点中指定的地址。

          转发又称服务器跳转,一次请求,一次响应,客户端向服务器端请求当前资源,这个资源将在服务器端内跳转到另一资源,由另一资源发回响应。

                还有一种为redirect(重定向),可以来重定向到Action

          重定向又称为客户端跳转,两次请求,两次响应,客户端向服务器端请求当前资源,服务器端响应回来一个其他地址,由客户端再一次根据发回来的地址来请求,                       由对应地址在最终发回来响应。

    3. Struts通配符

      传统方法中,例如上述代码中的list,show之类的方法,需要分别配置,这样的话需要耗费大量的配置时间,所以引入通配符来解决这一问题。

    <action name="*Product" class="com.how2java.action.ProductAction" method="{1}">
        <result name="show">show.jsp</result>
        <result name="list">list.jsp</result>
      </action>

    *Product 表示所有以Product结尾的路径,都会匹配在这个Action上 
    method={1}表示第一个通配符 
    如果访问的是addProduct就会调用add方法 
    如果访问的是listProduct就会调用list方法 
    以此类推

    初学者,如有错误还请指正!

  • 相关阅读:
    三元表达式 列表和字典推导式 函数对象 名称空间 作用域 global和nonlocal 函数装饰器 枚举对象
    函数参数 打散机制 字符串比较 返回值
    函数简介
    三种字符串的介绍 文件的读写
    字符编码
    数据类型及其常用方法 数据类型转换 可变与不可变 值拷贝与深浅拷贝
    流程控制 while和for循环
    变量命名规范 常量 输入和输出 注释 数据类型 运算符 逻辑运算符
    语言分类 编译型和解释型语言分析 环境变量 代码执行的方式 pip介绍 变量
    Python django tests
  • 原文地址:https://www.cnblogs.com/huqingfeng/p/12358732.html
Copyright © 2011-2022 走看看