【发布时间】:2015-10-07 07:47:54
【问题描述】:
自从我去年开始使用这个 web 应用程序以来,这一直困扰着我(我没有 web 开发经验)我不知道这个应用程序的结构是否不正确,或者这只是 它的方式。
我的welcome 页面实际上是一个登录页面,用户登录我的应用程序后会转到一个主页,在那里他们有一个菜单可以转到各种其他功能。
这是struts.xml:
<action name="Welcome">
<interceptor-ref name="newStack" />
<result name="success">Login.jsp</result>
</action>
<action name="actLogin" class="actionLogin">
<interceptor-ref name="newStack" />
<result name="success">HomePage.jsp</result>
<result name="error">Login.jsp</result>
</action>
<action name="actHomePage" class="actionHomePage">
<interceptor-ref name="newStack" />
<result name="viewUsers"> ViewUsers.jsp</result>
<result name="addUser"> AddUser.jsp</result>
<result name="viewWidgets">ViewWidgets.jsp</result>
<result name="addWidget"> AddWidget.jsp</result>
</action>
JSP 文件如下所示:Login.jsp:
<s:form action="actLogin" name="formLogin" method="post">
<s:textfield name="userId" id="txtUserId"/>
<s:password name="password" id="txtPassword"/>
.. login submit button ...
</s:form>
HomePage.jsp:
<s:form action="actHomePage" name="formHomePage" method="post">
. . . menu items that set values for action to pick up to route to the correct page
</s:form>
ViewUsers.jsp:
<s:form action="actViewUsers" name="formViewUsers" method="post">
<h2>User List</h2>
. . .
</s:form>
问题在于用户看到的 URL 以及在调试器(Chrome、IE 或 Firefox)中列出源文件的 URL 总是错误的。用户和调试器在登录页面上看到的 URL 是 Welcome(这没问题),但是在他们登录后他们在 HomePage 页面上看到 actLogin.html,他们在 ViewUsers 上看到 HomePage.html页。该 URL 始终位于您实际所在页面的后面,因为它使用操作名称。
我的登录 JSP不是否应该将其表单操作命名为 LOGIN,因为虽然这是正在执行的操作,但该操作的结果会转到 HomePage?
这个应用的结构是否奇怪?有更好的方法吗?
【问题讨论】:
标签: jsp configuration struts2 workflow