2015-12-22 2 views
1

Я хочу обрешеткой простой привет мир следуя за учебник шаг за шагом, но я думаю, что что-то отсутствует, потому что мой код возвращает только 404Spring MVC - Отображение на .htm не работает

Пожалуйста, может вы помогаете мне с тем, что не так?

Это класс контроллера

package com.companyname.springapp; 
import java.io.IOException; 
import java.util.Date; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import org.apache.commons.logging.Log; 
import org.apache.commons.logging.LogFactory; 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.servlet.ModelAndView; 
/** 
* Created by cota on 22/12/15. 
*/ 
@Controller 
public class HelloController{ 

protected final Log logger = LogFactory.getLog(getClass()); 

@RequestMapping(value="/hello.htm",method = RequestMethod.GET) 
public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) 
     throws ServletException, IOException { 

    String now = (new Date()).toString(); 
    logger.info("Returning hello view with " + now); 

    return new ModelAndView("views/hello.jsp", "now", now); 

} 
} 

Это web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 

<display-name>Springapp</display-name> 

<servlet> 
    <servlet-name>springapp</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/app-config.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>springapp</servlet-name> 
    <url-pattern>*.htm</url-pattern> 
</servlet-mapping> 

Это приложение-config.xml

<?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:context="http://www.springframework.org/schema/context" 
     xmlns:mvc="http://www.springframework.org/schema/mvc" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context.xsd 
     http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc.xsd"> 


    <!-- Configures the @Controller programming model --> 
    <mvc:annotation-driven/> 

    <!-- Scans the classpath of this application for @Components to deploy as beans --> 
    <context:component-scan base-package="com.companyname.springapp.web" /> 

</beans> 

Это заголовочный файл для включения все файлы JSP

<%@ page session="false"%> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 

а также index.jsp и hello.jsp есть следующая строка

<%@ include file="views/include.jsp" %> 

Это мой первый вопрос здесь и действительно восхищаюсь всеми вами, извините за мой бедный английский!

+0

... что ваша конфигурация распознаватель вид? Я думаю, у вас есть другие проблемы, но лучше идти шаг за шагом. –

+0

Какой конечный пункт вы попадаете? Какой результат вы видите на своем сервере при запуске? –

+0

Скорее всего, проблема в том, что Spring не может найти файл 'views/hello.jsp'. Как вы настроили «ViewResolver»? –

ответ

-1

Не думаю, что вы неправильно настроили разрешение просмотра. поэтому, пожалуйста, попробуйте приведенные ниже ссылки. Это может быть для вас работа. Откройте app-config.xml и добавьте следующие строки.

<bean id="viewResolver" 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
    p:prefix="/WEB-INF/views/" p:suffix=".jsp" /> 

и изменить свой контроллер, как показано ниже.

@RequestMapping(value="/hello.htm",method = RequestMethod.GET) 
    public ModelAndView handleRequest(HttpServletRequest  request,HttpServletResponse response) 
    throws ServletException, IOException { 

String now = (new Date()).toString(); 
logger.info("Returning hello view with " + now); 

return new ModelAndView("hello", "now", now); 

}

Я надеюсь, что это будет работать для вас ..

+0

Почему вы предлагаете эти изменения? Что они будут делать? Почему это было неправильно? –

+0

ModelAndView («views/hello.jsp», «now», now) Как он может вернуть представление с расширением .jsp, если он уже настроил viewResover. Он получает из-за конфигураций. @Coat не упоминал об этом. –

+0

Справа. Я хочу, чтобы вы отредактировали свой ответ и прояснили все это. –

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