ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
1209
1209
EMPFEHLEN
-
Hallo zusammen,
ich versuche zur Zeit ein Spring Portlet für Liferay zu schreiben, doch irgendwie scheint mein Controller für ein Suchfeld nicht zu funktionieren.
Ich hoffe, dass mir jemand helfen kann
meine JSP: (die libs sind included)
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14
<portlet:actionURL var="formAction"> <portlet:param name="action" value="search"/> </portlet:actionURL> <form:form commandName="newsletterCommand" method="post" action="${formAction}"> <table border="0"> <tr> <td>Search:</td> <td><form:input path="searchField"/><form:errors path="searchField"/></td> <td><input type="submit" value="submit"/></td> </tr> </table> </form:form>
Die xml:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
<bean id="parameterMappingInterceptor" class="org.springframework.web.portlet.handler.ParameterMappingInterceptor"/> <bean id="portletModeParameterHandlerMapping" class="org.springframework.web.portlet.handler.PortletModeParameterHandlerMapping"> <property name="order" value="10"/> <property name="interceptors"> <list> <ref bean="parameterMappingInterceptor"/> </list> </property> <property name="portletModeParameterMap"> <map> <entry key="view"> <map> <entry key="search"><ref bean="newsletterSearchController"/></entry> <entry key="test"><ref bean="JSPController"/></entry> </map> </entry> </map> </property> </bean> <bean id="newsletterSearchController" class="com.ext.portlet.newsletter.controllers.NewsletterSearchController"> <property name="sessionForm" value="true"/> <property name="commandName" value="newsletterCommand"/> <property name="commandClass" value="com.ext.portlet.newsletter.cmd.NewsletterCommand"/> <property name="newsletterService" ref="newsletterService"/> <property name="formView" value="search"/> </bean>
CommandController:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
package com.ext.portlet.newsletter.cmd; import java.io.Serializable; @SuppressWarnings("serial") public class NewsletterCommand implements Serializable{ private String searchField; public String getSearchField() { return searchField; } public void setSearchField(String searchField) { this.searchField = searchField; } }
controller:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
package com.ext.portlet.newsletter.controllers; import javax.portlet.ActionRequest; import javax.portlet.ActionResponse; import javax.portlet.PortletRequest; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; import org.apache.commons.lang.StringUtils; import org.springframework.validation.BindException; import org.springframework.web.portlet.ModelAndView; import org.springframework.web.portlet.mvc.SimpleFormController; import com.ext.portlet.newsletter.cmd.NewsletterCommand; import com.ext.portlet.newsletter.model.NewsletterModel; import com.ext.portlet.newsletter.service.NewsletterService; public class NewsletterSearchController extends SimpleFormController{ private NewsletterService newsletterService; protected void onSubmitAction(ActionRequest request, ActionResponse response,Object command,BindException errors) throws Exception { response.setRenderParameter("action","search"); } @Override protected Object formBackingObject(PortletRequest request) throws Exception { NewsletterCommand cmd = new NewsletterCommand(); return cmd; } protected ModelAndView onSubmitRender(RenderRequest request, RenderResponse response, Object command, BindException errors) throws Exception { System.out.println("Start: NewsletterSearchController-onSubmitRender"); NewsletterModel model = null; NewsletterCommand cmd = (NewsletterCommand) command; if(StringUtils.isNotEmpty(cmd.getSearchField())){ model = newsletterService.getNewsletterModelBySearchString(cmd.getSearchField()); System.out.println("Search: " + cmd.getSearchField()); } System.out.println("Ende: NewsletterSearchController-onSubmitRender"); return new ModelAndView("search", "newsletterModel", model); } public void setNewsletterService(NewsletterService newsletterService) { this.newsletterService = newsletterService; } public NewsletterService getNewsletterService() { return newsletterService; } }
Und hier der Fehler:
Vielen Dank schon mal!Code :1 2 3 4 5 6 7 8
10:50:42,681 ERROR [InputTag:84] Neither BindingResult nor plain target object f or bean name 'newsletterCommand' available as request attribute java.lang.IllegalStateException: Neither BindingResult nor plain target object f or bean name 'newsletterCommand' available as request attribute at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus. java:141) ...
Gruß Johannes
-
Okay, ich habe das Problem gefunden,... Ich denke es liegt daran, dass ich die selbe JSP wieder aufrufe und dafür das object nicht an den ModelAndView übergebe oder gibt es eine bessere Lösung?
-
Hi,
versuch doch das mal:
Code java:1 2 3 4
... new ModelAndView(new RedirectView("search.html"), "newsletterModel", model); ...
Grüße
Peter
Ähnliche Themen
-
Spring Security NTLM & Spring Framework 3.0
Von Thomas Darimont im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 2Letzter Beitrag: 26.01.10, 12:50 -
Planung Serversoftware mit Spring als Framework, wie Spring einsetzen?
Von DarthShader im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 8Letzter Beitrag: 26.09.08, 19:05 -
Spring MVC::SimpleFormController::initialization
Von Don_Pazo im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 3Letzter Beitrag: 30.01.08, 10:22 -
SimpleFormController, Command Object übergeben
Von BigChicken im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 17.09.07, 09:59 -
Spring One Praesentation: Introduction to Data Access with Spring.NET
Von Thomas Darimont im Forum .NET DatenverwaltungAntworten: 2Letzter Beitrag: 21.06.06, 13:42





Zitieren
Login





