gpt4 book ai didi

Action 对象的 Struts2 生命周期

转载 作者:行者123 更新时间:2023-12-04 23:57:58 25 4
gpt4 key购买 nike

我是 Struts2 框架的新手,我真的没有太多时间阅读任何 Struts2 书籍。我只是从 YouTube 上学到的。无论如何,这是我的问题。

据说我的 struts.xml 如下所示:

<struts>
<package name="p1" namespace="/" extends="struts-default">
<action name="login" class="org.tutorial.struts2.action.LoginAction">
<result name="success" type="redirect" >searchTutorialForm</result>
<result name="error">/login.jsp</result>
</action>
<action name="searchTutorialForm">
<result>/searchForm.jsp</result>
</action>
</package>
</struts>

让我们谈谈包 p1。

如果 URL 是 [http://localhost:8080/Struts2/login],则 org.tutorial.struts2.action.LoginAction 被调用,成功后它被重定向到调用 searchForm.jsp 的 searchTutorialForm 操作标签。

所以客户端看到的 URL 是 [http://localhost:8080/Struts2/searchTutorialForm]
(目的不是让客户端看到[http://localhost:8080/Struts2/searchForm.jsp])

现在,LoginAction 中有一些成员变量,它们使用标记显示在 searchForm.jsp 中。但是使用这种方法它们不会显示,因为我认为对象 LoginAction 不再在 ValueStack 中(在重定向之后,我认为??)。

当然,如果我不使用上述方法而是按照以下方法:
<struts>
<package name="p1" namespace="/" extends="struts-default">
<action name="login" class="org.tutorial.struts2.action.LoginAction">
<result name="success">/searchForm.jsp</result>
<result name="error">/login.jsp</result>
</action>
</package>
</struts>

然后 LoginAction 对象中的成员变量使用标签显示在 success.jsp 中(但随后用户会看到 URL [http://localhost:8080/Struts2/searchForm.jsp])

基本上我的意图是让用户不要看到任何特定的内部文件或调用,如 .jsp 或 .action。

重要的提示:
Action 标签 searchTutorialForm 中没有 Action 类——基本上是一个虚拟 Action 。

题:
1. 如何使用第一种方法在 LoginAction 对象中显示成员变量?
2、Value Stack中LoginAction对象的生命周期是怎样的?

谢谢。

最佳答案

  • 操作是根据请求创建的。
  • 重定向会导致新的请求。
  • 因此,先前操作中的对象不再可用。

  • 问题:
  • 您将其放入 session 中或将它们作为参数包含在重定向中。
  • 操作在请求结束时消失。
  • 关于Action 对象的 Struts2 生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14567863/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com