Robert Graf-Waczenski
Tue, 17 Nov 2009 05:18:48 -0800
Hi,why does your forward "ShowList" forward to an action url? In good old Struts1 manner, this should not be necessary. Instead, i would implement place-list.jsp in such a way that it extracts all necessary information from the user's session. Your action PlaceAction should then prepare everything correctly so that place-list.jsp finds it. The same thing holds for place-details.jsp (and the forward named "Edit"): It should rely on the session state and that PlaceDetailsAction has prepared everything correctly. You only need to find a good way to maintain the correct information in the session. In Struts1, i would traditionally use a class extending ActionForm to accomplish this.
Unrelated to your problems but still relevant to Struts in general: If you are starting with Struts freshly anyway, why not use Struts2 instead? I would suggest to talk to your superiours and/or your customer to use Struts2. If you need to use it side-by-side with Struts1, this is also possible and you will find a lot of resources about how to do this in the net (or come back to this list anyway, the folks here usually are happy to help).
Robert Peter Schmitt schrieb:
Hi, I'm new to Struts, using version 1.2.4, so this might in fact be a configuration problem... Here's an extract from my struts-config.xml first: <action path = "/place" type = "de.isogmbh.srp.strutstest.client.PlaceAction" name = "PlaceForm" scope = "request" validate = "true" input = "/place.jsp" parameter = "do" > <forward name="ShowList" path="/place-list.do" /> </action><action path = "/place-list"type = "de.isogmbh.srp.strutstest.client.PlaceDetailAction" name = "PlaceForm" scope = "request" validate = "true" input = "/place-list.jsp" parameter = "do" > <forward name="Edit" path="/place-details.do" /> </action> <action path = "/place-details" forward = "/place-details.jsp" /> On the page place.jsp, the user can enter a place name. PlaceAction will then load a list of all places with that name, to be displayed on place-list.jsp. place-list.jsp has links to place-details.jsp, which shows more information about one particular place. There is no JavaScript in my JSP and no empty img tags. PlaceAction and PlaceDetailAction are both subclasses of DispatchAction. PlaceAction has a method showList, and PlaceDetailAction has a method getPlace. Here's an extract of place.jsp: <html:form action="/place?do=showList"> <bean:message key="place.jsp.question"/> <html:text property="name" size="30" /> <html:submit property="submit"><bean:message key="place.jsp.search"/></html:submit> </html:form> And here's an extract of place-list.jsp: <html:link module="/place-details"action="/place-details?do=getPlace" paramName="entry" paramProperty="id" paramId="placeId" ><bean:write property="name" name="entry"/> </html:link> My Struts application is in a .war file running on Tomcat 5.0. When I entered a place name on place.do (using Internet Explorer 6), I got a NoSuchMethodException because PlaceDetailAction does not define a method showList. When I debugged the whole thing, I saw what happened: At the end of PlaceAction.showList, I return mapping.findForward("ShowList"). That method performs a kind of lookup in struts-config, where I said ShowList is a forward to place-list.do. Now place-list calls PlaceDetailAction, where it expects a method showList... What am I doing wrong?
--------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org