`

struts2 redirect-action 传递 参数

阅读更多

在做一个系统,使用struts2框架,在提交一个请求后,将获取的数据对象再要生成一个序列号,为了防止刷新生成冗余序列号,就在请求处理完成后,直接重定向到显示该信息的action中:

 

Java代码 复制代码
  1. <action name="enterpreinfo" class="preinfoBusinessAction"    method="enterPreinfoSub">     
  2.   <result name="success" type="redirect-action">     
  3.      showpreinfo?preinfo.order_number=${preinfo.order_number}&amp;preinfo.company_name=${preinfo.company_name}      
  4.   </result>     
  5.  <result name="error" type="redirect">     
  6.     <param name="location">/error.jsp</param>     
  7.  </result>     
  8. </action>  
 

 

因为使用了redirect-action,所以要注意不能将showpreinf?preinfo.order_number=${preinfo.order_number}写成showpreinf.action?preinfo.order_number=${preinfo.order_number}

在这个配置文件里,多个参数的连接符使用了"&amp;",但XML的语法规范,应该使用"&amp;"代替"&",原理和HTML中的转义相同,开始没有注意,在struts分析配置文件时,总是报出这样的错误:

The reference to entity "preinfo" must end with the ';' delimiter.
<action name="editmenu" class="LunchClassPackage.MenuAction" method="UpdMenu">
    <result name="success" type="redirect-action">
        <param name="actionName">managemenu </param>
        <param name="companyId">${companyId} </param>
  </result>
</action>
官方文档:
Struts action代码 复制代码
  1. <package name="public" extends="struts-default">   
  2.     <action name="login" class="...">   
  3.         <!-- Redirect to another namespace -->   
  4.         <result type="redirect-action">   
  5.             <param name="actionName">dashboard</param>   
  6.             <param name="namespace">/secure</param>   
  7.         </result>   
  8.     </action>   
  9. </package>   
  10.   
  11. <package name="secure" extends="struts-default" namespace="/secure">   
  12.     <-- Redirect to an action in the same namespace -->   
  13.     <action name="dashboard" class="...">   
  14.         <result>dashboard.jsp</result>   
  15.         <result name="error" type="redirect-action">error</result>   
  16.     </action>   
  17.   
  18.     <action name="error" class="...">   
  19.         <result>error.jsp</result>   
  20.     </action>   
  21. </package>   
  22.   
  23. <package name="passingRequestParameters" extends="struts-default" namespace="/passingRequestParameters">   
  24.    <-- Pass parameters (reportType, width and height) -->   
  25.    <!--   
  26.    The redirect-action url generated will be :   
  27.    /genReport/generateReport.action?reportType=pie&width=100&height=100  
  28.    -->   
  29.    <action name="gatherReportInfo" class="...">   
  30.       <result name="showReportResult" type="redirect-action">   
  31.          <param name="actionName">generateReport</param>   
  32.          <param name="namespace">/genReport</param>   
  33.          <param name="reportType">pie</param>   
  34.          <param name="width">100</param>   
  35.          <param name="height">100</param>   
  36.       </result>   
  37.    </action>   
  38. </package>  
自己的代码:
Struts action代码 复制代码
  1. <!-- 删除文章 -->   
  2.         <action name="articleDel" class="articles.action.ArticleAction"  
  3.             method="delArticle">   
  4.             <result name="authorDelArticle" type="redirect-action">   
  5.                 articlesList?do=del   
  6.             </result>   
  7.             <result name="adminDelArticle">   
  8.                 /admin/articlesList.jsp   
  9.             </result>   
  10.         </action>    或用下面的代替  
<!-- 删除文章 -->
		<action name="articleDel" class="articles.action.ArticleAction"
			method="delArticle">
			<result name="authorDelArticle" type="redirect-action">
				articlesList?do=del
			</result>
			<result name="adminDelArticle">
				/admin/articlesList.jsp
			</result>
		</action>    或用下面的代替
Struts action代码 复制代码
  1. <result name="authorDelArticle" type="redirect">   
  2.     articlesList.action?do=del   
  3.  </result>  
<result name="authorDelArticle" type="redirect">
    articlesList.action?do=del
 </result>
想解决的问题是怎么用
<param name="do"></param>成功传值,一直失败中!
警告: Caught OgnlException while setting property 'reportType' on type 'org.apache.struts2.dispatcher.ServletActionRedirectResult'.
ognl.NoSuchPropertyException: org.apache.struts2.dispatcher.ServletActionRedirectResult.reportType
上述问题是说我没有setting property 这个属性,我去实验下。。。
Struts代码 复制代码
  1. Under JSP 2.1 the # character is now used by the JSP EL.    
  2.   
  3. This may cause problems with some applications that use the OGNL # operator.    
  4.   
  5. One quick-fix is to disable the JSP EL in a JSP 2.1 container (like GlassFish) by adding a jsp-config element to the web.xml   
  6.   
  7. <jsp-config>   
  8.     <jsp-property-group>   
  9.       <url-pattern>*.jsp</url-pattern>   
  10.       <el-ignored>true</el-ignored>   
  11.     </jsp-property-group>   
  12.   </jsp-config>  
分享到:
评论

相关推荐

    struts-2.5.20-all.rar

    5. **OGNL(Object-Graph Navigation Language)**:Struts2默认使用OGNL作为表达式语言,用于在Action与视图之间传递数据。OGNL允许直接访问对象的属性,甚至可以进行复杂的表达式计算。 6. **插件体系**:Struts2...

    struts-2.5.12-all

    5. **OGNL(Object-Graph Navigation Language)**:Struts2内部使用OGNL作为表达式语言,用于在Action和视图之间传递数据。例如,Action的属性可以直接在JSP页面上访问。 6. **插件支持**:Struts2有丰富的插件库...

    struts2中result类型之redirectAction

    在上面的例子中,`myAction`执行完成后,浏览器将被重定向到`anotherAction`,在`/anotherNamespace`命名空间下,并且传递了参数`param1=value1`和`param2=value2`。 **redirectAction Result的优缺点:** 优点: 1...

    struts2-core-2.1.8.1 xwork-core-2.1.6源码

    6. **OGNL表达式语言(OGNL)**:Struts2使用OGNL作为默认的表达式语言,用于在Action和视图之间传递数据。`ognl`包中的类和接口实现了OGNL的解析和执行。 7. **异常处理(Exception Handling)**:在`struts2-core...

    struts-2.5.2-docs.zip

    6. **OGNL(Object-Graph Navigation Language)**:Struts 2使用OGNL作为表达式语言,用于在Action与视图之间传递数据,以及在配置文件中设置属性。 7. **插件系统**:Struts 2的插件机制允许快速集成第三方库,...

    struts2 result配置详解

    在上面的配置中,使用 Redirect-action 配置将结果重定向到一个 Action,同时传递参数 Xml 代码。Redirect 配置则不同,它需要指定完整的 URL 地址。 Struts2 框架中 Result 配置类型非常多样化,每种类型都有其...

    MyEclipse生成的struts-2.3.30-all javadoc

    5. **OGNL (Object-Graph Navigation Language)**: Struts 2中的表达式语言,用于在Action和视图之间传递数据,如在JSP中使用`&lt;s:textfield&gt;`标签直接访问Action的属性。 6. **Struts标签库**: 提供了一系列的JSP...

    struts-2.3.35-all.zip

    6. **值栈(Value Stack)**:值栈是Struts 2中的一个重要概念,它是一个存储对象的容器,用于实现视图和模型之间的数据传递。Action实例和ActionForm对象都可以放入值栈中,通过OGNL(Object-Graph Navigation ...

    Struts2--4.结果集-- result元素

    - `Struts2_1800_ResultWithParams`:这个例子可能展示了如何使用`result`元素配合`param`属性传递参数到结果页面。这在需要动态地改变页面内容时非常有用。 - `Struts2_1500_ResultType`:这部分可能涵盖了不同的...

    Struts2全部jar包

    5. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为默认表达式语言,用于在Action和视图之间传递数据,支持对象属性的直接访问和动态表达式。 6. **插件体系**:Struts2支持丰富的插件,如...

    Struts2--result配置的各种视图转发类型

    3. **redirectAction**:重定向到另一个Action,可以传递参数。 ```xml &lt;param name="actionName"&gt;welcome &lt;param name="param1"&gt;value1 ``` 4. **stream**:用于处理大文件下载或动态生成的内容,避免内存...

    struts-2.3.16-all-1

    3. **OGNL(Object-Graph Navigation Language)**:Struts 2使用OGNL作为默认表达式语言,用于在Action和视图之间传递数据,提供强大的对象访问和表达式计算能力。 4. **插件(Plugins)**:Struts 2有丰富的插件...

    struts-1.2.9-bin.rar__struts的全部jar包

    2. **ActionServlet**:这是Struts的核心组件,它是一个扩展了Servlet的类,负责接收HTTP请求,根据配置文件(struts-config.xml)路由请求到相应的Action。 3. **ActionForm**:用于封装表单数据,它是模型层与...

    Struts2-api

    5. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为表达式语言,它用于在Action和视图之间传递数据。开发者可以通过OGNL表达式在JSP页面上直接访问Action的属性,或者在Action中获取请求参数。 ...

    struts-2.0.14jar(all)包.rar

    5. **OGNL(Object-Graph Navigation Language)**:Struts 2内部使用OGNL作为表达式语言,用于在Action与视图之间传递数据。开发者可以通过OGNL在JSP页面上直接访问Action的属性,或者在Action中设置模型数据。 6....

    Struts-2.3.34.zip

    5. **OGNL(Object-Graph Navigation Language)**:Struts 2 使用 OGNL 作为默认表达式语言,用于在视图层和控制器之间传递数据。开发者可以通过 OGNL 表达式直接访问 Action 对象的属性,或者从 Session、Request ...

    struts-1.3.8-src.zip

    4. **ActionForm**:ActionForm对象用于封装用户输入的数据,从请求中收集参数,并在Action中处理这些数据。 5. **JSP和Tags**:Struts提供了丰富的JSP标签库(Tiles和Struts Tags),使得开发者可以方便地在视图层...

    struts2-api

    8. **插件体系**:Struts2支持丰富的插件扩展,如Struts2-dojo-plugin提供了与Dojo库的集成,Struts2-convention-plugin实现了基于约定的自动Action映射等。 9. **异常处理**:Struts2提供了一套完整的异常处理机制...

    struts-action.zip

    Struts2 Action 是一个核心组件,它是Struts2框架中处理用户请求的关键部分。这个"struts-action.zip"文件包含了Struts2框架中Action的示例代码,可以帮助开发者更好地理解和运用Struts2来构建Web应用程序。 Struts...

    struts-2.0.14源代码

    5. **OGNL(Object-Graph Navigation Language)**: Struts 2使用OGNL作为默认表达式语言,负责在Action和视图之间传递数据。例如,`struts-default.properties`中配置了OGNL作为默认值栈。在源代码中,`ognl`包下有...

Global site tag (gtag.js) - Google Analytics