2016-09-22 21 views
0

Spring MVCを実装するための私の単純な設定DispatcherServletがなぜ機能しないのか理解できません。Spring MVCのコントローラでHTMLページが読み込まれない

マイweb.xmlは、次のように次のようになります。

<?xml version="1.0" encoding="UTF-8"?> 

<web-app id="WebApp_ID" 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"> 

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class> 
     org.springframework.web.servlet.DispatcherServlet 
    </servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

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

</web-app> 

私のディスパッチャサーブレットのアプリケーションコンテキストがdispatcher-servlet.xmlである:

<?xml version="1.0" encoding="UTF-8"?> 

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    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-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="org.paolo.controller" /> 
    <mvc:annotation-driven/> 

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

</beans> 

私は要求

package org.paolo.controller; 

import org.springframework.stereotype.Controller; 
import org.springframework.ui.ModelMap; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 

@Controller 
@RequestMapping(value="/") 
public class MyController { 

    @RequestMapping(method = RequestMethod.GET) 
    public String myForm() { 
     return "welcome"; 
    } 
} 
を処理するための簡単な MyControllerを持っています

およびWEB-INF/views私はそれが簡単なブートストラップ形で、私のwelcome.htmlページを置く:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="ISO-8859-1"> 
<title>Spring | Welcome</title> 

<!-- Latest compiled and minified CSS --> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 

<!-- Optional theme --> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"> 

<!-- Latest compiled and minified JavaScript --> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> 

</head> 
<body> 

<form> 
    <div class="form-group"> 
    <label for="exampleInputEmail1">Email address</label> 
    <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Email"> 
    </div> 
    <div class="form-group"> 
    <label for="exampleInputPassword1">Password</label> 
    <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password"> 
    </div> 
    <div class="form-group"> 
    <label for="exampleInputFile">File input</label> 
    <input type="file" id="exampleInputFile"> 
    <p class="help-block">Example block-level help text here.</p> 
    </div> 
    <div class="checkbox"> 
    <label> 
     <input type="checkbox"> Check me out 
    </label> 
    </div> 
    <button type="submit" class="btn btn-default">Submit</button> 
</form> 

</body> 
</html> 

私はエラーを取得する:私はあなたが要求する必要が両方<mvc:annotation-driven/><url-pattern>/</url-pattern>

+0

あなたはURL '/ SpringSecPaolo /'をアクセスしようとしていますか? –

+1

静的コンテンツを提供しようとしているだけなので、mvc:resources設定を使用できます。 http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/mvc.html#mvc-config-static-resources –

+0

@ redflar3 localhost:8080/SpringSecPaolo正確には – DistribuzioneGaussiana

答えて

1

を持って
No mapping found for HTTP request with URI [/SpringSecPaolo/WEB-INF/views/welcome.html] in DispatcherServlet with name 'dispatcher'

注意コントローラメソッドがマップされるURLですが、HTMLビューは直接マップされません。

私はあなたのアプリケーションが下に展開されていると思います:localhost:8080/SpringSecPaolo/(これだけこのURLを入力すると、アプリケーションはあなたのhtmlファイルを送信する必要がありますことを得るあなたはHTTPを送信するときに(@RequestMapping(value="/")@RequestMapping(method = RequestMethod.GET))を使用して、コントローラのメソッドが呼び出されますlocalhost:8080/SpringSecPaolo

+0

これは私がやっていることですが、DispatcherServletの名前が 'dispatcher'のURI [/SpringSecPaolo/WEB-INF/views/welcome.html]でHTTP要求に対して404のマッピングが見つかりませんでした。 – DistribuzioneGaussiana

1

問題は、ディスパッチャーサーブレットでhtmlページを返そうとしていることです。

htmlファイルは静的であり、サーブレットで処理する必要はありません。

  1. 使用し、HTMLやJSP InternalResourceViewResolver
  2. 使用を削除し、InternalResourceViewResolver定義を削除する必要がHTMLを使用するにはInternalResourceViewResolver

を使用する:あなたは2つの選択肢があり、あなたの問題を解決するために

(または接頭辞と接尾辞の属性を空白に設定する)、この行をdispatcher-servlet.xml

01に追加します

これは、Springに静的コンテンツのビューフォルダを探すよう指示します。 はその後WebContentのフォルダの下のビューのフォルダを入れて、あなたのコントローラあるmyForm()方法で は、HTML、このようなファイルを返す:

return "views/welcome.html"; 

あるようInternalResourceViewResolver定義を続ける代わりに、JSPを使用して、変更を

<property name="suffix"> 
     <value>.jsp</value> 
</property> 

<property name="suffix"> 
     <value>.html</value> 
</property> 

からサフィックスプロパティ

と明らかにhtmlファイルおよびSpring構成の詳細については

をwelcome.jspをするのwelcome.htmlの名前を変更します。 How to serve .html files with Spring

関連する問題