Struts2操作对象的生命周期
我是Struts2框架的新手,我没有太多时间阅读Struts2的书籍。我只是从YouTube上学的。不管怎样,这是我的问题 假设我的struts.xml如下所示:Struts2操作对象的生命周期,struts2,Struts2,我是Struts2框架的新手,我没有太多时间阅读Struts2的书籍。我只是从YouTube上学的。不管怎样,这是我的问题 假设我的struts.xml如下所示: <struts> <package name="p1" namespace="/" extends="struts-default"> <action name="login" class="org.tutorial.struts2.action.LoginAction">
<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>
<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>
搜索教程表单
/login.jsp
/searchForm.jsp
让我们谈谈p1包
如果URL是空的,请说[http://localhost:8080/Struts2/login],org.tutorial.struts2.action.LoginAction将被调用,一旦成功,它将被重定向到searchTutorialForm操作标记,该标记将调用searchForm.jsp
因此客户端将看到的URL是[http://localhost:8080/Struts2/searchTutorialForm]
(目的不是让客户看到[http://localhost:8080/Struts2/searchForm.jsp])
现在LoginAction中有一些成员变量,它使用标记显示在searchForm.jsp中。但是,使用这种方法,它们不会显示,因为我认为对象登录操作不再在ValueStack中(我认为重定向之后??)
当然,如果我不使用上述方法,而是按照以下方法:
<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>
<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>
/searchForm.jsp
/login.jsp
然后,LoginAction对象中的成员变量将使用标记显示在success.jsp中(但用户将看到URL)[http://localhost:8080/Struts2/searchForm.jsp])
基本上,我的意图是让用户看不到任何特定的内部文件或调用,比如.jsp或.action
重要提示:
action tag searchTutorialForm中没有action类-基本上是一个虚拟操作
问题:1.如何使用第一种方法在LoginAction对象中显示成员变量?
2.值堆栈中LoginAction对象的生命周期是什么 谢谢。
- 每个请求都会创建操作
- 重定向导致新请求
- 因此,以前操作中的对象不再可用