2017-05-11 29 views
0

私は静的フォルダにあるhtmlファイルを開く単純なリクエストマッピングを持っています。要求のマッピングが'/town'のような1つの部分の要求であるが、'/visual/town'のようなURL上では動作しません(404を返す)場合、正しく動作します。私がデバッグすると、プログラムは希望の場所に落ちます。マッピングが2つ以上の部分で構成されている場合、そのファイルが指すファイルを認識できません。これは私には全く意味がありません。スプリングコントローラリクエストマッピングが正しく動作しない

この1作品:

@Controller("VisualHomeController") 
public class HomeController { 

    @RequestMapping(value = "/town") 
    public String emergentTown() { 
     return "static/visual/emergent_town.html"; 
    } 
} 

この1つはありません:

@Controller("VisualHomeController") 
public class HomeController { 

    @RequestMapping(value = "/visual/town") 
    public String emergentTown() { 
     return "static/visual/emergent_town.html"; 
    } 
} 

そして、ここでは私のサーブレット・マッピングで、問題がここで発生するようだ:だから

<servlet-mapping> 
    <servlet-name>main</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 
+0

あまり情報がありません。 – Jaiwo99

+0

コントロールが正しいメソッドに来ている場合は、サーブレットマッピング情報 – cuneytyvz

+0

を追加してから@RequestMappingが機能しています。そんなことはありません。それ以降に起こることは、あなたのコードまでです。これはRequestMappingでどのように問題になりますか – pvpkiran

答えて

1

、問題はサーブレットのマッピングにあるとわかりました。

私はと/visualある私の追加コントローラの最初の部分のための別のサーブレットマッピングを追加するために必要な:そして、それは働いた

<servlet-mapping> 
    <servlet-name>main</servlet-name> 
    <url-pattern>/visual/*</url-pattern> 
</servlet-mapping> 

。だから、/.../new_pageのようなリクエストが必要なときは、サーブレットマッピングとして...を定義する必要があります。メインサーブレットマッピングを/*に変更するだけでは、この目的には十分ではありません。

注:デバッグ時にプログラムがreturn ...に含まれる理由はまだわかりません。つまり、もう1つのサーブレットマッピングが必要な場合、フロントコントローラが要求をそのメソッドにルーティングする方法は?そして、なぜそれがビューを解決できないのですか?

関連する問題