1

私はいくつかの解決方法を行っていますが、私の場合は何もしていません。 この単純なspring mvcの例を実行すると、ブラウザで「Not Found」エラーが発生しています。私はSpringフレームワークが初めてです。どんな助けも高く評価されます。続きSpring:Spring MVCのビュー名を解決できません

は私がプログラムを実行するとき、私はコンソールに乗るエラーです:

は[org.springframework.web.servlet.PageNotFound](デフォルトタスク-4)URIとHTTPリクエストが見つかりませんマッピングをWARN 'SpringDispatcher'という名前のDispatcherServletの[/ Demo1 /] WARN [org.springframework.web.servlet.PageNotFound](デフォルトのタスク-5)DispatcherServletのURI [/ Demo1/HelloPage]を持つHTTP要求のマッピングが見つかりませんでした。 SpringDispatcher '

ここにweb.xml

ここ
<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
    <display-name>Demo1</display-name> 
    <context-param> 
     <param-name>contextClass</param-name> 
     <param-value> 
      org.springframework.web.context.support.AnnotationConfigWebApplicationContext 
     </param-value> 
    </context-param> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 

    <servlet> 
     <servlet-name>SpringDispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextClass</param-name> 
      <param-value> 
       org.springframework.web.context.support.AnnotationConfigWebApplicationContext 
      </param-value> 
     </init-param> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>com.kurshit.springmvc.Demo1</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>SpringDispatcher</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

    <session-config> 
     <session-timeout>30</session-timeout> 
    </session-config> 
</web-app> 

春-ディスパッチャ-servlet.xml

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    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"> 

<mvc:default-servlet-handler /> 
<mvc:annotation-driven/> 
<context:component-scan base-package = "com.kurshit.springmvc.Demo1.controller" /> 

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

</beans> 

HomeController.java

package com.kurshit.springmvc.Demo1.controller; 

import java.io.IOException; 

import javax.servlet.http.HttpServletResponse; 

import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.servlet.ModelAndView; 

@Controller 
public class HomeController { 

    @RequestMapping(value="/welcome.html") 
    public ModelAndView test(HttpServletResponse response) throws IOException{ 
     // TODO Auto-generated method stub 
     ModelAndView mav = new ModelAndView("HelloPage","msg","Welcome To Spring"); 


     return mav; 

    } 
} 

HomePage.jsp

<html> 
<body> 
    <h1>First Spring Example with Deployment Descriptor</h1> 

    <h2>${msg}</h2> 

</body> 
</html> 

は私のディレクトリ構造がどのように見えるかです:

Directory Structure Image Link

私は依存関係を解決するために、Mavenのツールを使用しています:

感謝を!

答えて

2

jspはHomePage.jspと呼ばれますが、ModelAndViewでHelloPageを返しています。これらの名前は一致する必要があります。 (ModelAndViewでは.jsp拡張子は必要ありませんが)

+0

mavを "ModelAndView mav = new ModelAndView("/WEB-INF/views/HelloPage.jsp "、" msg "、"ちょっと ");"コントローラ内。また、.jspを削除しても役に立たなかった。オプションではありませんか?洞察力に感謝します。 – Kurshit

+0

これを修正するために何をしましたか、本当にコンストラクタの最初の引数として "HelloPage"だけを置くことができます。これは、viewResolver Beanが正しく動作していないことを意味します。なぜ私はこのBeanの古いXML設定よりJavaベースの設定に慣れているのか分かりません。ビューリゾルバのビュークラスを設定しなかった可能性があります。 (http://www.baeldung.com/spring-mvc-view-resolver-tutorialを参照)。ビューリゾルバBeanが初期化されていることを確認するためにロギングを開始することもできます。 – Plog

関連する問題