Hi! I'm using java 1.4, eclipse IDE and JBoss. I have a index.jsp that forwards to a login.jsp <logic:redirect forward="login"/> in struts-config.xml i have: <!-- Form Bean Definitions --> <form-beans> <form-bean name="loginForm" type="Login"/> <form-bean name="page1Form" type="Page1"/> <form-bean name="page2Form" type="Page2"/> </form-beans>
<!-- Global forwards --> <global-forwards> <forward name="login" path="/login.do"/> </global-forwards>
and each *.jsp have a form: <html:form path="Login" ...> <html:form path="page1" ...> <html:form path="page2" ...> I have a ActionForm Login.java, Page1.java, Page2.java. And a Action LoginAction.java, Page1Action.java, ... When i do a submit in login.do (the initial page), the page goes to form 'page1', but the address bar shows 'Login.do', and when i do a submit on page1, the page goes to form 'page2', but the address bar shows 'page1.do' and so on... How is it possible to have the action displayed in the address bar with the same name of the form? Please write it down, because i'm only working in struts for about a week or two, and i'm not quite understanding it yet. I've already tryed changing the names, but i must be doing something wrong, because it never works. Thanks in advance.
The address bar displays what the user requested, not what the server responds with. If the user requests the login.do, that's what they see... no matter what page they end up at. You're not doing anything wrong. It's just the way it works - a different paradigm. If you really, really, really want it to do what you say: You could have your login.do send you to a prePage1.jsp which does nothing but forward you to another jsp or action with a more "appropriate" name. This causes the user's browser to send an extra request to the server and thus display a different action or page in the address bar. If you're only in Struts a week or so I recommend not worrying about it.