<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <!-- 创建包default,继承struts-default -->
    <package name="default" extends="struts-default">
        <!-- 名为login的Action,实现类为LoginAction -->
        <action name="login" class="com.action.LoginAction">  
            <!-- redirectAction返回类型 -->  
            <result type="redirectAction">
                <!-- Action名参数 -->
                   <param name="actionName">userLogin</param>

          <!-- 参数名 -->

        <param name="username">${username}</param>
                   <!-- 命名 空间参数-->
                <param name="namespace">/user</param>
            </result>  
            <!-- 返回值为error, redirectAction类型,重定向到名为error的Action-->      
            <result name="error" type="redirectAction">error</result>    
            </action>
            <!-- 名为error的Action -->
        <action name="error">
               <result>/error.jsp</result>
           </action>
    </package>
    <!-- 名为user的Action,命名空间为/user -->
    <package name="user" extends="struts-default" namespace="/user">
       <!--名为userLogin的Action  -->
       <action name="userLogin" class="com.action.UserAction">
           <result>/hello.jsp</result>         
       </action>
    </package>   
</struts>

其中hello.jsp 位于webroot 下。${username} 中的username  对应于login中的属性值,

即由页面传过来的值,而param 中 name="username" 中的username 对应于userLogin中的属性名称,即给该名称的属性赋值。

在hello.jsp中获取传递过来的属性 就要用到ognl表达式

<s:property value="username">

================================================================

动态调用方法

在struts.xml 中增加静态配置

<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>

增加后才可以动态调用方法;

动态调用方法首先在action得有对应的方法,被调用的方法与默认方法execute()类似

<action name="login" class="com.action.LoginAction">  
        <result>/result.jsp</result>

     <result name="add">/add.jsp</result>

    <result name="update">/update.jsp</result>
   </action>

对象的请求

http://127.0.0.1:8080/helloworld/login!update.action

struts2 type="redirectAction"重定向 与动态调用方法的更多相关文章

  1. struts2 中使用DMI(动态调用方法)方式配置action

    1.使用 "!"方式,即 action名称 ! 方法名称 struts.xml 配置 <package name="user" namespace=&qu ...

  2. Struts2 动态调用方法

    struts2动态调用方法有两种方式 方式一:用通配符进行调用: Action方法: package com.bjyinfu.struts.actions; public class CatchDyn ...

  3. C#使用表达式树动态调用方法并实现99乘法表

    我们在使用C#编程的时候,经常使用反射来动态调用方法,但有时候需要动态的生成方法,下面介绍使用表达式树的方式来自动生成方法,并调用. 首先需要说明什么是表达式,熟悉Linq的程序猿都用过类似于下面的代 ...

  4. C# 知识点笔记:IEnumerable<>的使用,利用反射动态调用方法

    IEnumerable<T>的使用 创建一个IEnumerable对象 List<string> fruits = new List<string> { " ...

  5. Xcode中Objc动态调用方法同时避免警告的几个办法

    我们在Xcode中使用objc写代码的时候往往会碰到动态调用方法的时候. 如果是静态调用这很常见,不会有任何问题: [self performSelector:@selector(method)]; ...

  6. Guava动态调用方法

    前言 大家在Coding的时候,经常会遇到这样一个情况,根据不同的条件去执行对应的代码.我们通常的处理方式是利用if-else判断,或者直接switch-case,特别是jdk1.6之后,swith开 ...

  7. (23) java web的struts2框架的使用-struts动态调用和通配符

    一,动态查找 1,配置允许动态调用 <!-- 允许动态方法调用 --> <constant name="struts.enable.DynamicMethodInvocat ...

  8. spring动态调用方法

    有的时候为了程序的灵活性,需要根据参数动态的调用方法.代码框架大致spring为主,下面是具体代码: 接口: 实现类(实现类中有一个从spring容器中取的对象) 这是最初我直接用反射去调用的代码: ...

  9. 利用java反射动态调用方法,生成grid数据

    项目中需要java后台查询并组装前台grid的数据,数据行数不定,数据行定义不定,开始用了最原始的方法,写了几百行,就是前台需要什么字段后台拼接什么字段,java代码冗余量非常大,并且不够灵活,一旦前 ...

随机推荐

  1. JPG .vs. PNG

    A summary of comparison between JPEG and PNG JPEG Pros Smaller file size than PNG Widely suppported ...

  2. HtmlWebpackPlugin实现资源的自定义插入

    目前碰到的问题 我们用html-webpack-plugin的inject属性去自动插入打包后的js, css到页面中,但是如果想给script标签添加一个crossorigin属性呢, 例如: &l ...

  3. MVVM 框架解析之双向绑定

    更好的阅读体验,点击 原文地址 MVVM 框架 近年来前端一个明显的开发趋势就是架构从传统的 MVC 模式向 MVVM 模式迁移.在传统的 MVC 下,当前前端和后端发生数据交互后会刷新整个页面,从而 ...

  4. WCF(一):初识WCF

    目录: 一.什么是WCF 二.WCF能做什么 三.WCF的模型 四.WCF的基本概念 五.WCF的快速创建 1.WCF是什么 A.WindowsCommunication Foundation(WCF ...

  5. 创建对象-constructor丢失的问题

    fuction Person(name){ this.name=name; } Person.prototype={ sayName:function(){ return this.name; } } ...

  6. 栈的存储结构的实现(C/C++实现)

    存档 #include "iostream.h" #include <stdlib.h> #define max 20 typedef char elemtype; # ...

  7. isupper()函数

    isupper()函数可以用来判断字符c是否为大写英文字母! 原型:extern int isupper(int c); 头文件:ctype.h 功能:判断字符c是否为大写英文字母 说明:当参数c为大 ...

  8. VS2012 TFS解决离职后代码遗留未迁入问题

    第一步: 在命令行中输入 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE 第二步: 根据用户查找该用户下workspac ...

  9. Sublime Text 3.0版本的傻瓜式汉化步骤

    Sublime text 3是非常好的文本编辑器,在试用过N款文本编辑器(Notepad.Notepad++.Notepad2.Programmer's notepad.EditPlus,Vim, T ...

  10. Vs自定义设置

    1.固定选项卡独立行显示设置 效果如下 2.语言设置 可以从官网寻找所需版本语言包 https://my.visualstudio.com/downloads 3.代码段设置 可以对现有的进行一些改造 ...