<?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. Windows程序设计学习笔记(一)Windows内存管理初步

    学习Windows程序设计也有一些时间了,为了记录自己的学习成果,以便以后查看,我希望自己能够坚持写下一系列的学习心得,对自己学习的内容进行总结,同时与大家交流.因为刚学习所以可能有的地方写不不正确, ...

  2. .NET HttpClient的缺陷

    using (HttpClient client = new HttpClient()){} 每次发起http请求每次new httpClient,它会打开许多套接字,比你实际的需求多许多,这极大地增 ...

  3. 购物车css样式效果

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. windbg指定SOS版本,执行扩展命令报错

    调试dump文件,加载相匹配版本的sos/clr时,绝大多数都是可以正常使用的. 然而凡事都有例外,今天在做类似工作时,遇到了错误: CLRDLL: Consider using ".cor ...

  5. flask设置配置文件的四钟方式

    # -*- coding: utf-8 -*- DEBUG = True # -*- coding: utf-8 -*- from flask import Flask,session,current ...

  6. flask-script组件

    Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell,设置数据库的脚本,cronjobs,及其他运行在web应用之外的命令行任 ...

  7. android组件化方案、二维码扫码、Kotlin新闻客户端、动画特效等源码

    Android精选源码 CalendarView日历选择器 android下拉刷新动画效果代码 一个非常方便的fragment页面框架 android组件化方案源码 Zxing实现二维码条形码的扫描和 ...

  8. oracle 11g体系结构

    1.数据库体系结构 1.1 数据库和实例的关系database server  = instance 实例 + database 数据库instance 实例  =内存 memory + 进程  pr ...

  9. python列表三

    >>> list1 = [123]>>> list2 =[234]>>> list1 > list2False>>> li ...

  10. UEP-标签

    这里的标签都是常用不好理解的: formatfunc="showFormatNumer" 显示数字在页面上 ockedcolumnnum="6" 几列是不动的 ...