2015-10-06 2 views
1

Я получаю 404 при попытке получить URL "http://localhost/demo_spring/letsgo/find" где resolutes на search.jsp страницу (как в фрагменте кода ниже)Spring MVC ModelAndView не работает 404

Сообщение об ошибке: HTTP Status 404 - /demo_spring/letsgo/WEB-INF/views/search.jsp

Я проверил и его работы для "http://localhost/demo_spring/letsgo/go", который производит JSON, а также для

корень URL "http://localhost/demo_spring/letsgo", который возвращает index.jsp

структура каталогов:
WEB-INF/МНЕНИЯ
-index.jsp
-search.jsp

@Controller 
@RequestMapping("/letsgo") 
public class IntroController 
{ 
    @RequestMapping(method = RequestMethod.GET) 
    public ModelAndView welcome() { 
     ModelAndView v1 = new ModelAndView("index"); 
     v1.addObject("attributeName", "attributeValue"); 
     return v1; 
    } 


    @RequestMapping(value="find",method = RequestMethod.GET) 
    @ResponseBody 
    public ModelAndView findloc() { 
     ModelAndView op = new ModelAndView("search"); 
     op.addObject("attributeName", "attributeValue"); 
     return op; 
    } 


    @RequestMapping(value="go",method = RequestMethod.GET, produces="application/json") 
    @ResponseBody 
    public String welcome3() { 
     try 
     { 
      return new ObjectMapper().writeValueAsString("Check for json"); 
     } 
     catch (JsonProcessingException e) 
     { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
      return null; 
     } 
    } 

грузоотправитель отображение

<servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

Sprin-mvc.xml configura Тион файл

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:mvc="http://www.springframework.org/schema/mvc" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd 
          http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd"> 

    <mvc:annotation-driven/> 
    <mvc:default-servlet-handler/> 

     <!-- View Handler --> 
       <bean id="multipartResolver" 
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
    <property name="maxUploadSize" value="5000000"/> 
</bean> 

    <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> 
     <property name="favorPathExtension" value="true"/> 
     <property name="mediaTypes"> 
      <map> 
       <entry key="xml" value="text/xml"/> 
       <entry key="json" value="application/json"/> 
       <entry key="html" value="text/html"/> 
       <entry key="less" value="text/html"/> 
      </map> 
     </property> 
     <property name="viewResolvers"> 
      <list> 


       <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 

    <property name="prefix" value="WEB-INF/views/"/> 
    <property name="suffix" value=".jsp"/> 
</bean> 
      </list> 
     </property> 
    </bean> 
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
     <property name="messageConverters"> 
      <list> 
       <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/> 
       <bean class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter"/> 
      </list> 
     </property> 
    </bean> 

</beans> 
+1

Remove '@ ResponseBody' для' findloc' метода – JavaGhost

+0

Это не работает :( – Akina91

ответ

2

В InternalViewResolver конфигурации префикс должен быть

<property name="prefix" value="/WEB-INF/views/"/> 

не

<property name="prefix" value="WEB-INF/views/"/> 

Уведомление о/до WEB-INF.

Вы также должны удалить @ResponseBody по методу findLoc, как указано JavaGhost. @ResponseBody указывает метод возвращаемого значения должен быть связан с телом веб-ответ

+0

Понял, что отсутствует «/» была проблема. Также будет проверять снова добавьте аннотацию @ResponseBody. Не могу подчеркнуть, насколько это помогло! Отличный ответ! (Y) – Akina91

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