2016-08-16 5 views
0

У меня возникли проблемы с картографированием весной. У меня есть веб-проект Spring с пользователями и базами данных. Я получил эту 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" 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_3_0.xsd" 
    id="WebApp_ID" version="3.0"> 

    <display-name>CRUDWebAppMavenized</display-name> 

    <context-param> 
     <param-name>log4jConfigLocation</param-name> 
     <param-value>classpath:log4j.xml</param-value> 
    </context-param> 
    <listener> 
     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
    </listener> 


<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/spring-servlet.xml</param-value> 
</context-param> 
<listener> 
    <listener-class> org.springframework.web.context.ContextLoaderListener    </listener-class> 
</listener> 
    <!-- Диспетчер сервлетов перехватывает все запросы HTML --> 
    <servlet> 
     <servlet-name>spring</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>spring</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

    <!-- Перед вызовом любой страницы сначала пробуются эти страницы --> 
    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
     <!--welcome-file>index.html</welcome-file> 
     <welcome-file>index.htm</welcome-file> 
     <welcome-file>default.html</welcome-file> 
     <welcome-file>default.htm</welcome-file> 
     <welcome-file>default.jsp</welcome-file--> 
    </welcome-file-list> 

    <error-page> 
     <error-code>500</error-code> 
     <location>/WEB-INF/jsp/error.jsp</location> 
    </error-page> 

    <error-page> 
     <error-code>404</error-code> 
     <location>/WEB-INF/jsp/error.jsp</location> 
    </error-page> 

    <error-page> 
     <location>/WEB-INF/jsp/error.jsp</location> 
    </error-page> 
</web-app> 

И эта весна-сервлет:

<?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:aop="http://www.springframework.org/schema/aop" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:jee="http://www.springframework.org/schema/jee" xmlns:lang="http://www.springframework.org/schema/lang" 
    xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:util="http://www.springframework.org/schema/util" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd 
     http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd 
     http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd 
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd 
     http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd 
     http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd"> 

    <!-- spring-mvc.xml and application-context.xml is here --> 

    <!-- spring-mvc.xml starts is here --> 

    <!-- Подключение статических ресурсов --> 
    <mvc:resources mapping="/resources/**" location="/resources/" /> 

    <!-- Включает Spring аннотации вроде @Autowired --> 
    <context:annotation-config /> 

    <!-- Сканирует пакет для поиска бинов --> 
    <context:component-scan base-package="com.joseph" /> 

    <!-- Включает поддержку @Controller и др. в Spring MVC --> 
    <mvc:annotation-driven /> 
    <mvc:default-servlet-handler /> 


    <!-- application-context.xml starts is here --> 

    <bean id="propertyConfigurer" 
     class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" 
     p:location="/WEB-INF/jdbc.properties" /> 

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
     destroy-method="close" p:driverClassName="${jdbc.driverClassName}" 
     p:url="${jdbc.databaseurl}" p:username="${jdbc.username}" p:password="${jdbc.password}" /> 

    <bean id="sessionFactory" 
     class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="configLocation"> 
      <value>classpath:hibernate.cfg.xml</value> 
     </property> 
     <property name="configurationClass"> 
      <value>org.hibernate.cfg.AnnotationConfiguration</value> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">${jdbc.dialect}</prop> 
       <prop key="hibernate.show_sql">true</prop> 
      </props> 
     </property> 
    </bean> 

    <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
     <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 
     <property name="prefix" value="/WEB-INF/jsp/"/> 
     <property name="suffix" value=".jsp"/> 
    </bean> 

    <tx:annotation-driven />  

    <bean id="transactionManager" 
     class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="sessionFactory" /> 
    </bean> 



</beans> 

Это мой контроллер:

package com.joseph.controller; 

import java.util.Map; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Controller; 
import org.springframework.validation.BindingResult; 
import org.springframework.web.bind.annotation.ModelAttribute; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.bind.annotation.RequestParam; 

import com.joseph.model.Student; 
import com.joseph.service.StudentService; 

@Controller 
public class StudentController { 
    @Autowired 
    private StudentService studentService; 

    @RequestMapping("/index") 
    public String setupForm(Map<String, Object> map){ 
     Student student = new Student(); 
     map.put("student", student); 
     map.put("studentList", studentService.getAllStudent()); 
     return "student"; 
    } 

    @RequestMapping(value = "/users", method = RequestMethod.GET) 
    public String index() { 
     return "users"; 
    } 

    @RequestMapping(value="/student.do", method=RequestMethod.POST) 
    public String doActions(@ModelAttribute Student student, BindingResult result, @RequestParam String action, Map<String, Object> map){ 
     Student studentResult = new Student(); 
     switch(action.toLowerCase()){ //only in Java7 you can put String in switch 
     case "add": 
      studentService.add(student); 
      studentResult = student; 
      break; 
     case "edit": 
      studentService.edit(student); 
      studentResult = student; 
      break; 
     case "delete": 
      studentService.delete(student.getStudentId()); 
      studentResult = new Student(); 
      break; 
     case "search": 
      Student searchedStudent = studentService.getStudent(student.getStudentId()); 
      studentResult = searchedStudent!=null ? searchedStudent : new Student(); 
      break; 
     } 
     map.put("student", studentResult); 
     map.put("studentList", studentService.getAllStudent()); 
     return "student"; 
    } 
} 

<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>CRUDWebAppMavenized</groupId> 
    <artifactId>CRUDWebAppMavenized</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 

    <properties> 
     <org.springframework.version>3.0.5.RELEASE</org.springframework.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-beans</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-jdbc</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 

     <!-- Hibernate resources --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>3.6.7.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>4.3.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-commons-annotations</artifactId> 
      <version>3.3.0.ga</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-annotations</artifactId> 
      <version>3.3.1.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>3.3.2.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>taglibs</groupId> 
      <artifactId>standard</artifactId> 
      <version>1.1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-dbcp</groupId> 
      <artifactId>commons-dbcp</artifactId> 
      <version>20030825.184428</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-pool</groupId> 
      <artifactId>commons-pool</artifactId> 
      <version>20030825.183949</version> 
     </dependency> 
     <!-- PostgreSQL properties --> 
     <dependency> 
      <groupId>org.postgresql</groupId> 
      <artifactId>postgresql</artifactId> 
      <version>9.3-1102-jdbc41</version> 
     </dependency> 
     <!-- Log4j --> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.14</version> 
      <type>jar</type> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.1.0</version> 
     </dependency> 

     <!-- Dependency for Bootstrap --> 
     <dependency> 
      <groupId>org.webjars</groupId> 
      <artifactId>bootstrap</artifactId> 
      <version>3.3.6</version> 
     </dependency> 
    </dependencies> 


    <build> 
     <testSourceDirectory>src/main/test</testSourceDirectory> 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <excludes> 
        <exclude>**/*.java</exclude> 
       </excludes> 
      </resource> 
      <resource> 
       <directory>src/main/webapp</directory> 
       <excludes> 
        <exclude>**/*.java</exclude> 
       </excludes> 
      </resource> 
     </resources> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

Я хочу, чтобы отобразить все запрос на URL "http://localhost:8080/CRUDWebAppMavenized/users" откроется users.jsp. Но я всегда вижу только страницу с ошибкой.

IDE говорит мне так:

WARN: org.springframework.web.servlet.PageNotFound - Нет отображения найдено для запроса HTTP с URI [/ CRUDWebAppMavenized/пользователей /] в DispatcherServlet с именем 'весна'

Кроме того, здесь вы больше текста из консоли:

INFO: org.springframework.web.servlet.mvc.annotati on.DefaultAnnotationHandlerMapping - Подключенные URL-путь [/student.do] на обработчик INFO '' studentController: org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Подключенные URL-путь [/ индекс] на обработчик ИНФО '' studentController : org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - URL-адрес сопоставленного URL [/index.*] на обработчике 'studentController' INFO: org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Путь сопоставленных URL-адресов [/ индекс /] на обработчик INFO 'studentController': org.springframework.web.servlet.handler.SimpleUrlHandlerMapping - Подключенные URL путь [/ ] на обработчик 'org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler # 0' INFO: org.springframework.web.servlet.handler.SimpleUrlHandlerMapping - сопоставленной URL путь [/ ресурсы/] на обработчик 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler # 0' INFO: org.springframework.web .servlet.DispatcherServlet - FrameworkServlet 'весна': инициализация завершена в 1420 мс

Где я могу изменить это отображение?

ОБНОВЛЕНО. Мой pom.xml

<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>CRUDWebAppMavenized</groupId> 
    <artifactId>CRUDWebAppMavenized</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 

    <properties> 
     <org.springframework.version>3.0.5.RELEASE</org.springframework.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-beans</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-jdbc</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 

     <!-- Hibernate resources --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>3.6.7.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>4.3.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-commons-annotations</artifactId> 
      <version>3.3.0.ga</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-annotations</artifactId> 
      <version>3.3.1.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>3.3.2.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>taglibs</groupId> 
      <artifactId>standard</artifactId> 
      <version>1.1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-dbcp</groupId> 
      <artifactId>commons-dbcp</artifactId> 
      <version>20030825.184428</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-pool</groupId> 
      <artifactId>commons-pool</artifactId> 
      <version>20030825.183949</version> 
     </dependency> 
     <!-- PostgreSQL properties --> 
     <dependency> 
      <groupId>org.postgresql</groupId> 
      <artifactId>postgresql</artifactId> 
      <version>9.3-1102-jdbc41</version> 
     </dependency> 
     <!-- Log4j --> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.14</version> 
      <type>jar</type> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.1.0</version> 
     </dependency> 

     <!-- Dependency for Bootstrap --> 
     <dependency> 
      <groupId>org.webjars</groupId> 
      <artifactId>bootstrap</artifactId> 
      <version>3.3.6</version> 
     </dependency> 
    </dependencies> 


    <build> 
     <testSourceDirectory>src/main/test</testSourceDirectory> 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <excludes> 
        <exclude>**/*.java</exclude> 
       </excludes> 
      </resource> 
      <resource> 
       <directory>src/main/webapp</directory> 
       <excludes> 
        <exclude>**/*.java</exclude> 
       </excludes> 
      </resource> 
     </resources> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 
+0

вы можете обновить ваш Здесь тоже здесь – kuhajeyan

+0

Прошу прощения, я тебя не понимаю. –

+0

Как вы создаете приложение, maven? если так вставьте свой pom.xml здесь – kuhajeyan

ответ

0

вероятно, вы забыли указать контекст слушателя в web.xml

<context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring-servlet.xml</param-value> 
    </context-param> 
    <listener> 
     <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> 
    </listener> 

и в весенне-servelt.xml добавить,

<mvc:default-servlet-handler/> 
+0

Он по-прежнему не может сопоставить любые другие jsp. –

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