Aktionsname / URL-Name in Debuggern, die Struts 2 @ verwend

Das hat mich gestört, seit ich im letzten Jahr mit dieser Webapp angefangen habe (ich hatte keine Erfahrung mit Webentwicklung). Ich weiß nicht, ob diese App falsch strukturiert ist oder ob dies nur @ iswie es is.

Mywelcome page ist wirklich eine Anmeldeseite, und nachdem sich der Benutzer in meiner App angemeldet hat, wird eine Hauptseite aufgerufen, auf der er über ein Menü verschiedene andere Funktionen aufrufen kann.

Das iststruts.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>

Die JSP-Dateien sehen folgendermaßen aus: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>

Das Problem dabei ist, dass der Benutzer die URL sieht und die URLs, die die Quelldateien in einem Debugger (Chrome, IE oder Firefox) auflisten, immer falsch sind. Die URL, die dem Benutzer und Debugger angezeigt wird, lautetWelcome auf der Anmeldeseite (was in Ordnung ist), aber nachdem sie sich angemeldet haben, sehen sieactLogin.html auf derHomePage Seite, und sie sehenHomePage.html auf derViewUsers Seite. Die URL steht immer hinter der Seite, auf der Sie sich gerade befinden, da sie den Aktionsnamen verwendet.

Sollte mein Login JSPnichie Formularaktion von @ muss den Namen LOGIN haben, da das Ergebnis dieser Aktion an @ gesendet wird, während diese Aktion ausgeführt wirHomePage?

Ist diese App strukturiertseltsa und es gibt einen besseren Weg, dies zu tun?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage