2016-10-21 22 views
1

Spring MVCを使用して基本Javaアプリケーションを構築しようとしていますが、アプリケーション内のリンクに問題があります。ここでSpring - 要求されたリソースが利用できません

は私web.xml

<servlet> 
    <servlet-name>test</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/test-servlet.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>test</servlet-name> 
    <url-pattern>/</url-pattern> 
    <url-pattern>/welcome.jsp</url-pattern> 
    <url-pattern>/welcome.html</url-pattern> 
</servlet-mapping> 

マイtest-servlet.xml

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

<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/</value> 
    </property> 
    <property name="suffix"> 
     <value>.jsp </value> 
    </property> 

</bean> 

でアプリを実行しているときに表示されます最初のページには、次のとおりです。

<html> 
<head> 
    <title>Spring MVC Tutorial</title> 
</head> 
<body> 
<br> 
<div style="text-align:center"> 
    <h3> 
     <a href="welcome">Click to say hello </a> 
    </h3> 
</div> 
</body> 
</html> 

とのwelcome.jspこれです:

<html> 
<head> 
    <title>Hello World MVC</title> 

</head> 
<body>${message} 

</body> 
</html> 

これは春を使用して、私は初めてなので(と私はこれに答える/尋ねる質問の多くがここにあります知っている - ので、私はされていません私を助ける答えを見つけることができる)、私はonline tutorialに続いた。

マイフォルダstructerしかし、私は2番目のページに移動するためのリンクをクリックするたびに、私はそれを言って404エラーを取得、彼らはチュートリアルで持っているものと似ています

/SpringTutorial-1.0-SNAPSHOT/WEB-INF/jsp/welcome.jsp - is not available 
+1

/WEB-INF/JSP/ Nimesh

答えて

0
  1. <url-pattern>タグでは、基本的に/で十分です。/welcome.jspまたは/welcome.htmlが必要です。

    <servlet-mapping> 
        <servlet-name>test</servlet-name> 
        <url-pattern>/</url-pattern> 
    </servlet-mapping> 
    
  2. prefixvalueプロパティに相対パスを与える必要はありません。

    <property name="prefix"> 
        <value>/WEB-INF/jsp/</value> 
    </property> 
    

そして、もう一つはあなたにもUrlBasedViewResolverの代わりにInternalResourceViewResolverで試すことができます。

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

として そして、URLマッピング、私はまだ同じエラーを取得します。 Tomcatにデプロイされた後にファイルwelcome.jspの読み取りアクセスが原因でエラーが発生する可能性はありますか? –

+0

ディレクトリ構造とコントローラを表示できますか? –

+0

@AdrianDanielCuleaこれにアンカータグを変更するには、 'Click to say hello'、viewResolverとInternalResourceViewResolverは –

0

<html> 
<head> 
    <title>Spring MVC Tutorial</title> 
</head> 
<body> 
<br> 
<div style="text-align:center"> 
    <h3> 
     <a href="welcome.html">Click to say hello </a> 
    </h3> 
</div> 
</body> 
</html> 

also change url pattern to/or *.html 


<servlet> 
    <servlet-name>test</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/test-servlet.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>test</servlet-name> 
    <url-pattern>*.html</url-pattern> 
</servlet-mapping> 

also view resolver to internal resource view resolver and avoid giving relative url in it. 

はまた、あなたが@Controller注釈を与えていることを確認してくださいをwelcome.htmlするために、フォームのアクションを変更し

。 @RequestMapping( "/歓迎")

関連する問題