zoukankan      html  css  js  c++  java
  • 动态Result配置

    步骤一:建立DynaAction,主要代码如下:
    package com.asm;

    public class DynaAction extends ActionSupport {

        private String username;

        private String nextAction;

     

        public String execute() throws Exception {

           if (username.equals("admin")) {

               nextAction = "admin";

           } else if (username.equals("user")) {

               nextAction = "user";

           } else {

               nextAction = ERROR;

           }

           return SUCCESS;

        }

        ...省略get/set方法

    }

    步骤二、建立jsp页面dyna.jsp,主要是为了向DynaAction中传递username参数。

    步骤三、相关配置如下:

    <package name="dynaTest" extends="pubResult">

           <action name="dyna" class="com.asm.DynaAction">

               <result name="success"type="chain">${nextAction}</result>

           </action>

     

           <action name="admin" >

               <result>/admin.jsp</result>

           </action>

     

           <action name="user">

               <result>/user.jsp</result>

           </action>

    </package>

    分析:当dyna.jsp把参数传递到DynaAction中去时,如果传递的值为admin,我们便设定了nextAction的值admin,在配置文件中我们通过${nextAction}(用在struts配置文件中的ognl,其实nextAction的值是存在值栈中,我们通过${}这样的形式取出。在此只作了解)来获取值便为admin,随后再继续把请求传递到下一个Action中去(此时也即admin.action),为了方便我们设定了两个ForwardAction:admin.action和user.action。这样便可以跳到指定的jsp页面。 原理:dyna.action执行后会继续把请求传递给下一个Action,而下一个Action的到底是哪一个Action,是通过DynaAction中动态指定的,比如这里是根据传递的username的值指定。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    【HBase】三、HBase和RDBMS的比较
    【HBase】二、HBase实现原理及系统架构
    【HBase】一、分布式数据库HBase简介
    【LeetCode】9、Palindrome Number(回文数)
    【LeetCode】7、Reverse Integer(整数反转)
    【HDFS】四、HDFS的java接口
    【HDFS】三、HDFS命令行接口
    【HDFS】二、HDFS文件读写流程
    【HDFS】一、HDFS简介及基本概念
    【Redis】四、Redis设计原理及相关问题
  • 原文地址:https://www.cnblogs.com/mrcharles/p/4731695.html
Copyright © 2011-2022 走看看