2015-06-09 5 views
-1

Я начинаю с Spring MVC, и я следую некоторым учебникам, я чего-то не хватает, но я не вижу, что это такое. Вот что я получил: файл: pom.xmlНастройка Spring mvc

<project xmlns="http://maven.apache.org/POM/4.0.0"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0   http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.wearedevelopers</groupId> 
    <artifactId>contabills</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 

    <dependencies> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>4.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-aop</artifactId> 
     <version>4.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>4.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>4.1.1.RELEASE</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-logging</groupId> 
     <artifactId>commons-logging</artifactId> 
     <version>1.1.3</version> 
    </dependency> 
</dependencies> 
<build> 
    <sourceDirectory>src/main/java</sourceDirectory> 
    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.4</version> 
      <configuration> 
       <warSourceDirectory>WebContent</warSourceDirectory> 
       <failOnMissingWebXml>false</failOnMissingWebXml> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

Файл: contabills-servlet.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:p="http://www.springframework.org/schema/p" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-4.0.xsd"> 

<context:component-scan base-package="com.wearedevelopers.controllers" /> 

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/templates/" /> 
    <property name="suffix" value=".html" /> 
</bean> 

Файл: web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> 
    <display-name>ContaBills</display-name> 
    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 

    <servlet> 
     <servlet-name>spring-mvc</servlet-name> 
     <servlet- class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>classpath:contabills-servlet.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>contabills</servlet-name> 
     <url-pattern>*.html</url-pattern> 
    </servlet-mapping> 

</web-app> 

Файл: HomeController

@Controller 
@RequestMapping("/home") 
public class HomeController { 
    @RequestMapping(value = "/index", method = RequestMethod.GET) 
    public String helloWorld(Model model) 
    { 
     model.addAttribute("mensagem", "mensagem"); 
     return "home"; 
    } 
} 

UPDATE: В консоли, один из сообщения является: [SetPropertiesRule] {Server/Service/Двигатель/Host/контекст} Установка свойства 'источник' в «org.eclipse. jst.jee.server: contabills 'не нашел подходящего свойства.

Когда я запрашиваю URL-адрес localhost: 8080 // home/index, я ожидаю файл home.html, который я определил, но получил 404. Я считаю, что чего-то не хватает, и я не вижу, что это.

EDIT: Кроме того, есть это в консоли:

INFO: типы Нет Spring WebApplicationInitializer обнаружен на пути к классам

+0

Проблема в том, что я получаю 404. Приложение не отображает мои страницы. –

+0

Может кто-нибудь объяснить мне, почему голосуют за дальнейшие вопросы? –

+0

Поскольку вы не (или не знали) объяснили, какое поведение вы ожидали, почему вы ожидали такого поведения и какое фактическое поведение вы получаете. Какой запрос вы отправили? Для какого URL? Какая часть вашего приложения Spring MVC должна обрабатывать этот запрос? И т.д. –

ответ

-1

Вашего URL-шаблон является неправильным, и вы упускаете аннотации приводятся заявление. Кстати, положите * после classpath. Ваши файлы должны быть как:

web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> 
<servlet> 
    <servlet-name>DispatcherServlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>classpath*:contabills-servlet.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>DispatcherServlet</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
</web-app> 

contabills-servlet.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:p="http://www.springframework.org/schema/p" 
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-4.0.xsd 
http://www.springframework.org/schema/mvc 
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-4.0.xsd"> 

<context:component-scan base-package="com.wearedevelopers.controllers" /> 
<mvc:annotation-driven /> 

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/templates/" /> 
    <property name="suffix" value=".html" /> 
</bean> 
</beans> 

Это должно работать.

+0

Привет, сделал все, что вы сказали, не работал. –

+0

Произошла такая же ошибка? –

+0

Да. См. Мое редактирование. Я считаю, что файл file.xml не распознается. –

0

Ваша requestmapping должна иметь расширение .html в соответствии с вашим отображением сервлета в web.xml.

Поэтому используйте расширение .html в requestmapping в приложении. Это должно сработать.

@RequestMapping(value = "/index.html", method = RequestMethod.GET) 
    public String helloWorld(Model model) 
    { 
+0

Привет, не работает, кроме того, есть шаблон resolver для расширений HTML. –

+0

С какой ошибкой вы сталкиваетесь? разместите трассировку стека. –

+0

Пожалуйста, см. Мое редактирование в сообщении. Я считаю, что файл file.xml не распознается. –

0

Вы должны исправить две линии. 1st находится внутри web.xml "spring-mvc" вместо spring-mvc использовать "contabills". 2nd вы всегда должны использовать .html-файлы для RequestMappings, потому что в web.xml вы фильтруете все запросы html-запросов на сервлет-диспетчер весны. И я настоятельно рекомендую добавить файл конфигурации log4j внутри вашего пути к классам, который настроен на уровень отладки. Вы можете легко отслеживать все шаги вашего запроса.

+0

Готово. Но у меня даже нет возможности зарегистрировать что-то. Он не попадает в контроллер. –

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