this has been bothering me since started working webapp last year (i had no experience web development) don't know if app structured incorrectly or if the way is.
my welcome page login page, , after user logs in app goes main page, have menu go various other functions.
this 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> the jsp files this: 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 set values action pick route correct page </s:form> viewusers.jsp :
<s:form action="actviewusers" name="formviewusers" method="post"> <h2>user list</h2> . . . </s:form> the problem url user sees , urls listing source files in debugger (chrome, ie or firefox) wrong. url user , debugger sees welcome on login page (which ok), after log in see actlogin.html on homepage page, , see homepage.html on viewusers page. url 1 behind page on because uses action name.
should login jsp not have form action named login because while action being performed, result of action goes homepage?
is app structured weird , there's better way this?
this happens result of bad workflow design. correct should read prg pattern. can change
<action name="actlogin" class="actionlogin"> <interceptor-ref name="newstack" /> <result name="success" type="redirectaction">acthomepage</result> <result name="error">login.jsp</result> </action> <action name="acthomepage" class="actionhomepage"> <interceptor-ref name="newstack" /> <result name="success">homepage.jsp</result> </action> other results not needed, can remain them if need forward different page same action in url.
Comments
Post a Comment