zoukankan      html  css  js  c++  java
  • 3.Struts2-Result

    注:

    1.在struts.xml文件中使用include标签 可以将另外一个xml文件包含进struts.xml文件中,如:

    1 <struts>
    2     <constant name="struts.devMode" value="true" />
    3     <include file="login.xml" />
    4 </struts>    //就可以包含login.xml文件

    2.可以在struts.xml文件中,使用 <default-action-ref> 标签 来指定默认Action,即找不到对应的Action进行处理时,调用这个Action

      如:<default-action-ref name="index"></default-action-ref>

    Result

      1.result 标签  type 属性(用于指定某个Action执行后跳转的方式)

      type = "dispather"(默认) 类似于转发(转发到某个JSP)

      type="redirect" 类似于重定向 (重定向到某个JSP)

      type="chain"  转发到某个Action (转发的Action和自身的Action 不在同一个包下,需要使用参数去指定)

      type="redirectAction" 重定向到某个Action

      这四种需要了解  还有其他的不太常见,重点掌握前面两种

      

      2.全局结果集(<global-results>)

        在某个package中使用<global-results>标签 ,设置全局结果集

        全局结果集的作用:相当于为该package下的每个action 多加上一个result  

        如:在Action中,execute方法 既没有返回success,也没有返回error等,返回的是mainpage,

        struts.xml中对应的action 并没有配置 ‘mainpage’ 的result,但如果设置了全局结果集,就仍可以找到对应的result

        注:如果另外一个package,想要使用这个globle results,需要 extends 对应的package,这也是package标签中 extends属性的作用

      3.动态结果(所谓动态:就是在Action中动态指定结果,在struts.xml中再去取出这个结果)

      

     1 public class UserAction extends ActionSupport {
     2     private int type;
     3     private String result;
     4     
     5     public void setResult(String result) {
     6         this.result = result;
     7     }
     8     
     9     public String getResult() {
    10         return result;
    11     }
    12     
    13     public void setType(int type) {
    14         this.type = type;
    15     }
    16     
    17     public int getType() {
    18         return type;
    19     }
    20     
    21     @Override
    22     public String execute() throws Exception {
    23         if(type == 1) {
    24             result="/success.jsp";
    25         } else if(type == 2) {
    26             result="/error.jsp";
    27         } 
    28         return SUCCESS;
    29     }
    30 }

      /*不根据result标签中的 name 属性来 进行筛选,而是动态指定想要访问的web资源*/

        1.在Action中,设置一个属性,用于保存动态结果,根据前台传来的信息,来为其赋值

        注意一定不要忘了为动态结果的保存值设置set get方法

        2.在struts.xml 中 取出这个动态结果 使用 ${result}   如:<result> ${result} </result>

      4.带参数的结果集(即返回的web资源路径,后面带有参数,这个参数是Action里面的属性)

     1 private int type;
     2     
     3     
     4 public void setType(int type) {
     5     this.type = type;
     6 }
     7     
     8 public int getType() {
     9     return type;
    10 }
    1 <result type="dispatcher"> /success.jsp?t=${type} </result>

       注:

       一次request请求,只有一个值栈 如果result标签中指定类型为 "redirect",重定向到某个Action 或 JSP 那么会有两次请求,

       之前的值栈的内容就无法保存,会被第二次请求覆盖
       如果result标签中指定类型为 "dispather" 转发到某个Action 或JSP 那么请求只有一次,可以共享值栈中的内容

      

  • 相关阅读:
    正则表达式
    浏览器 User-Agent 大全
    python3爬虫开发实战 第六课 爬虫基本流程
    python3爬虫开发实战 第五课 常用库的安装
    python3爬虫开发实战 第四课 MySQL
    python3爬虫开发实战 第三课 Redis数据库
    python3爬虫开发实战 第二课 MongoDB安装
    python3爬虫开发实战 第一课 python安装和Pycharm安装
    批处理——数据库
    Aop所需包
  • 原文地址:https://www.cnblogs.com/xuzekun/p/7379833.html
Copyright © 2011-2022 走看看