`
lushuaiyin
  • 浏览: 705003 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2action与struts.xml传参问题

 
阅读更多

struts2 通过配置struts.xml看action之间如何传递参数2010-11-11 113752 分类: 默认分类 标签:struts 两个 action 之间 传递 字号大中小 订阅 .

需求功能是这样:Action1 获取数据库配置内容,得到相应Model的 动态URL ,这里的URL 有的是Action有的是JSP页面。


1.使用result 类型中的 redirect 类型,如下:
result name=success type=redirect${dynamicUrl}objectId=${objectId}&param1=${param1}result
这样传参才能达到Action取参数的需要,如果要是加上 :
param name=param1${param1}param
param name=items${items}param

那么 param1 和 items 这两个参数都无法从目标Action里得到,如果想得到的话只能用 objectId=${objectId}&param1=${param1} 这种方式,或者用 session来实现,这样就有点复杂了,而且使用起来也相当的不方便。后来又尝试了第二种方式:

2.使用result类型中的redirect-action类型 如下:
result name=success type=redirect-action
param name=actionName${actionName}param
param name=namespace${namespace}param
result
此时,result之间不能再设其它的自定义的参数了,因为 redirect-action对应的是 org.apache.struts2.dispatcher.ServletActionRedirectResult ,而actionName和namespace是它的两个属性,还有一个重要属性就是methodName,如果要再加其它自己定的参数,只能扩展该类了。我在此基础上,又在result 之外添加了几个param 参数,如:

param name=param1${param1}param
param name=param2${param2}param
result name=success type=redirect-action
param name=actionName${actionName}param
param name=namespace${namespace}param
result
但是还是不能将 param1和param2两个参数传到目标Action中。既然Struts2有这种机制,那么它就一定能够实现,两个Action的动态传参,只是我对它不了解而已,后来,我又翻出来Strut2的源码和XWork的源码,再结果网上的资料,又尝试了第三种方式,终于可以了。

3.使用reulst 类型中chain类型 如下:

action name=getTemplate class=tabAction method=getTemplateByParas
param name=objectId${objectId}param
param name=param1${param1}param
param name=items${items}param

result name=success type=chain
param name=actionName${actionName}param
param name=namespace${namespace}param
result

action

这样就可以实现传参了,这里的参数所有对象都可以传,包括map,List,set 等集合也可以。同时这里还需要注意一个小问题,chain这种类型是XWork中的result类型,它对应的类是:
com.opensymphony.xwork2.ActionChainResult . 这里需要注意一个小问题, actionName,namespace都是他的属性,所以对于传过的URL参数要做一下处理。
actionName必须是Action的名称,namespace是他命名空间,必须以开头,如:
tabgetTemplate.action 则 namespace=tab ; actionName=”getTemplate“;

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

Struts2之两个Action传值和不传值的struts.xml文件配置
分类: Struts2的学习 2008-11-21 16:03 890人阅读 评论(0) 收藏 举报
例如 在执行完action1之后要直接跳转到action2,并且action1要传一些参数给action2,在struts.xml文件中的配置如下:
<action name="action1" method="" class="">
<result name="success" type="chain">
<param name="actionName">action2</param>
<param name="param1">${param1}</param>
<param name="param2">${param2}</param>
</result>
</action>

注意:
1. 若param1和param2是两个变量,那么在两个action中都要有他们的getter和setter
2. 若param1是常量,那么在action1中只要有一个param1的getter,在action2中要有param1的getter和setter

如果在两个action之间直接跳转而不用传参数,struts.xml文件可以和上面一样,只是没有param标签,还可以使用如下配置:
<action name="action1" method="" class="">
<result name="success" type="redirectAction">action2.action</result>
</action>
即可

分享到:
评论

相关推荐

    Struts框架中struts-config.xml文件配置小结

    ### Struts框架中struts-config.xml文件配置详解 #### 一、引言 在Java Web开发领域,Struts是一个非常重要的MVC(Model-View-Controller)框架,它极大地简化了Web应用程序的开发过程。而在Struts框架中,`struts...

    struts.xml和applicationContext.xml、web.xml的配置

    总结来说,`struts.xml` 负责Struts2的Action配置,`applicationContext.xml` 管理Spring的Bean和依赖,而`web.xml` 定义了Web应用的基本结构和组件。这三个文件共同协作,构建了一个功能完善的Java Web应用,实现了...

    struts.xml

    struts.xml文件配置解释,对action配置进行说明

    spring在web.xml中和在struts中的不同配置..pdf

    Struts2的Spring插件会在Struts配置文件(如struts.xml)中定义一个`&lt;package&gt;`,包含`&lt;interceptors&gt;`和`&lt;default-interceptor-ref&gt;`元素,这样Struts2就会知道如何与Spring协作,将Action实例化和依赖注入交给...

    struts.xml文件详解.doc

    Struts.xml文件是Apache Struts 2框架的核心配置文件,它用于定义应用程序的行为、Action映射、结果页面、拦截器等关键组件。在深入讲解struts.xml之前,我们先来了解与之相关的struts.properties文件。 struts....

    struts-config.xml

    除了上述元素,`struts-config.xml`还允许定义其他元素,如`&lt;action-forward&gt;`用于定义Action内部的转发,以及`&lt;message-resource&gt;`来配置应用程序的消息资源文件。 正确理解和配置`struts-config.xml`是开发Struts...

    Dom4j解析struts2框架的struts.xml

    Struts2是一个强大的MVC(Model-View-Controller)框架,广泛应用于Java Web开发中。在Struts2中,`struts.xml`是核心配置文件,它定义了应用的...通过理解并实践上述步骤,你将能更好地掌握Struts2框架的配置与扩展。

    struts1中web.xml配置详解

    在 struts1 框架中,web.xml 文件是必不可少的配置文件之一,它用于配置 Struts 应用程序的核心组件 ActionServlet。本文将详细解释 web.xml 文件中的配置项和相关知识点。 1. 配置 Struts 的 ActionServlet 在 ...

    struts.xml和struts.properties配置详解

    `struts.xml`是Struts2的核心配置文件,它负责定义动作(Action)、结果(Result)、拦截器(Interceptor)等核心元素,控制着应用程序的流程。以下是一些主要的配置元素: 1. ****: 定义一个包,可以包含多个...

    Struts2.5版本struts.xml与web.xml配置的更改方法

    在Struts2框架中,配置文件`struts.xml`和`web.xml`是核心部分,它们定义了应用程序的行为和路由规则。随着版本的更新,配置方式也会有所改变。以下是Struts2.5版本中`struts.xml`和`web.xml`配置的更改方法: **1....

    Struts2手动搭建所有的jar包及相应的struts.xml和web.xml

    现在,当用户访问匹配Action的URL时,Struts2框架会解析`struts.xml`文件中的配置,执行对应的Action,然后根据结果类型返回相应的视图。你可以在此基础上扩展配置,比如添加更多的Action、结果类型、拦截器,以满足...

    Struts2配置精要之struts.xml( global和default的配置)

    在Struts2中,`struts.xml`是核心配置文件,它定义了应用的架构,包括动作映射、结果类型、拦截器和全局配置等。这篇博客主要探讨的是`struts.xml`中的`global`和`default`配置。 1. **全局配置(Global ...

    Struts2中Struts.xml配置文件详解

    "Struts2 中 Struts.xml 配置文件详解" Struts2 中的 Struts.xml 配置文件是 Struts2 框架的核心配置文件,用于定义应用程序的行为和结构。在 Struts.xml 文件中,我们可以定义 package、action、interceptor、...

    去掉.action去掉.do字样 隐藏struts2 URL地址action, strus1的扩展名do也是同理.zip

    为了去掉这个.action,我们需要配置Struts2的配置文件,通常是struts.xml。在该文件中,我们可以定义一个全局结果类型(global result type)来处理所有请求的后缀: ```xml &lt;constant name="struts.action....

    struts2-core-2.0.12.jar

    Struts2的插件系统使得扩展框架功能变得简单,例如,Spring插件可以方便地将Struts2与Spring框架集成,实现依赖注入。 综上所述,Struts2-core-2.0.12.jar包含了Struts2框架的核心功能,为Java Web开发者提供了高效...

    struts2属性文件struts.xml的配置

    其中,`struts.xml`是Struts2的核心配置文件,用于定义项目的包、常量、拦截器等基本设置以及具体的Action配置。 #### 一、`struts.xml`文件结构与基础配置 **1. 文件声明与DTD定义** ```xml &lt;?xml version="1.0...

    struts.xml的要准备的jar包

    `struts2-convention-plugin.jar`提供了约定优于配置的功能,使得开发者可以按照一定的命名规则快速创建Action,而无需显式地在`struts.xml`中配置。 `struts2-dojo-plugin.jar`或`struts2-jquery-plugin.jar`等...

    struts.xml(struts2配置)

    Struts2支持动态方法调用,允许不预先在`struts.xml`中定义Action,而是直接通过URL调用Action类的任何公共方法。 通过理解和灵活运用`struts.xml`配置,开发者能够构建出高效、可维护的Struts2应用。同时,配合...

    struts2 使用注解现在零配置不需要在使用struts.xml配置文件,可以直接跑

    在Struts2中,注解的引入使得开发者可以摆脱繁琐的`struts.xml`配置文件,实现“零配置”运行。 首先,让我们了解什么是注解(Annotation)。注解是Java提供的一种元数据机制,允许在源代码中嵌入信息,这些信息...

Global site tag (gtag.js) - Google Analytics