【问题标题】:Struts won't pass parameter to jsp fileStruts不会将参数传递给jsp文件
【发布时间】:2016-09-13 03:17:59
【问题描述】:

我有一个动作(取决于结果)重定向到合适的文件:

<!-- /web/addaccount -->
<action name="addaccount" class="com.x.y.z.WebCreateAccountAction">      
  <result name="INVALIDLOGIN">/delete/confirm.jsp?err=SIGNIN</result>
  <result name="ERROR">/delete/error.html</result>
</action>

由于某种原因,在重定向到delete/confirm.jsp 时,没有传入参数err。我不知道为什么会这样。这是通过 Struts 将参数传递给 JSP 的错误方式吗?

【问题讨论】:

标签: struts2 actionresult xml-configuration


【解决方案1】:

只是缺少一个:

type="redirect"

<result name="INVALIDLOGIN" type="redirect">/delete/confirm.jsp?err=SIGNIN</result>

注意:建议不要这样做,它会直接重定向到 JSP,这将被视为 S2 反模式。请参阅下面的 cmets。

【讨论】:

  • 这意味着您将直接重定向到 JSP,这将被视为 S2 反模式。
  • 有趣啊。 @DaveNewton tutorialspoint.com/struts_2/struts_redirect_action.htm 建议直接使用重定向到 JSP。现在过时了吗?
  • @Siddhartha 将直接 JSP 与面向动作的框架混合使用从来没有是一种好的做法。所有请求都应该通过一个动作。这适用于各种技术(例如,Struts 1 应用程序也不应该使用直接 JSP 访问)。唯一可能的例外可能是登录页面,它会重定向到一个操作,或者可能是与较低级别的某些东西交互的登录页面。这不是框架可以强制执行的规则——它只是惯例。
  • @Siddhartha 该教程可能相当陈旧,因为 S2 本身不再提倡特定的 Ajax 方法,除了弃用其自己的(旧的)基于 Dojo 的插件,并拥有一个相对维护良好的 jQuery 插件这不是官方 S2 项目的一部分。
  • @DaveNewton 感谢您的建议。修改了答案以避免误导任何经过的人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
  • 2016-08-12
  • 1970-01-01
  • 1970-01-01
  • 2012-04-25
  • 2014-05-29
  • 2017-04-22
相关资源
最近更新 更多