2013-12-12 4 views
0

Прежде всего, репозиторий и служба search(searchCriteria) протестированы и работают.Как получить простую форму поиска, работая

Вот моя форма:

метод
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> 
... 

<form:form method="GET" action="fooSearchResults"> 
    <div class="form-group"> 
     <form:input path="searchCriteria" type="text" id="searchCriteria" placeholder="Find a location..." /> 
    </div> 
    <input type="submit" class="btn btn-default" value="Search" /> 
</form:form> 

Контроллер:

@RequestMapping(value = "/fooSearchResults", method = RequestMethod.GET) 
    public ModelAndView search(@ModelAttribute("searchCriteria") String searchCriteria, BindingResult result) { 
     List<Foos> foos = fooService.search(searchCriteria); 

     return new ModelAndView("searchResults", "command", locations); 
    } 

Я получаю следующее сообщение об ошибке, когда я попал на страницу с формой:

org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/locationSearch.jsp at line 20 

17:     <div class="visible-md visible-lg well well-search"> 
18:     <form:form method="GET" action="fooSearchResults"> 
19:      <div class="form-group"> 
20:       <form:input path="searchCriteria" type="text" id="searchCriteria" placeholder="Find a location..." /> 
21:      </div> 
22:      <input type="submit" class="btn btn-default" value="Search" /> 
23:      </form:form> 


Stacktrace: 
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:465) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) 
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264) 
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208) 
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992) 
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939) 
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:811) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 


root cause 

java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'command' available as request attribute 

ответ

0

Вам не нужно modelAttribute или bindingResult Потому что ваш searchCriteria является String не pojo. Вместо этого:

@RequestMapping(value = "/fooSearchResults", method = RequestMethod.GET) 
public ModelAndView search(@RequestParam("searchCriteria") String searchCriteria) { 
    List<Foos> foos = fooService.search(searchCriteria); 

    return new ModelAndView("searchResults", "command", locations); 
} 
+0

Я обновлен до этого, но я все еще получаю следующее сообщение об ошибке при попытке загрузить страницу с поисковой формой: 'java.lang.IllegalStateException: Ни BindingResult, ни обычный целевой объект для bean name 'command' доступно как атрибут запроса' –

Смежные вопросы