0

私はSpringMVCとJavascriptMVCを使用してサンプルWebアプリケーションを作成し、Tomcat7をデプロイしています。アプリケーションにSpringセキュリティとSpringMVCを組み込んでいます。Mkyongによるこの記事から助けを得ました http://www.mkyong.com/spring-security / spring-security-form-login-using-database / これで、アプリケーションをtomcatにデプロイすると正常に実行されますが、アプリケーションにクライアント側MVC、つまりJavascriptMVCを追加したいので、jsファイルなどのスクリプトリソースを追加したいと思います。私のアプリケーションでは。

これが私のアプリケーションのフローです。ユーザーはを使用してアプリケーションを起動します

"// localhost:8080 / SpringMVC(アプリケーション名)/welcome(/welcomeはコントローラーによってhello.jspページにリダイレクトされます)"

これはログインページを示しています。ユーザーの資格情報が書き込まれると、彼はhello.jspページに移動します。このページでは、JacascriptMVCコードを追加し、タグでjsファイルを参照しました。アプリケーションは、ローカルのブラウザーで正常に実行されますが、tomcatにデプロイすると、リソースにアクセスできません404エラーが表示され、基本的なhtmlのみが表示されます。 jsおよびcssファイルにアクセスします。

リソースにアクセスする方法をたくさん試しました。

<script src='./WebContent/javascriptmvc/steal/steal.production.js'/>

<script src='WebContent/javascriptmvc/steal/steal.production.js'/>

<script src='/WebContent/javascriptmvc/steal/steal.production.js'/>
しかし、すべて同じエラーが発生しました。

WARファイルのアプリケーションディレクトリ構造

-SpringMVC
  -WEB-INF
    -pages
    -hello.jsp
    -login.jsp 
  -META-INF
  -WebContent
    -javscriptmvc
      -steal
         -steal.production.js

どんな助けでも大歓迎です。ファハド

4

2 に答える 2

0

SpringMVCディスパッチャーサーブレットは/右側に登録する必要があります-

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

その場合、コンテキストにもを追加する<mvc:default-servlet-handler />と、Springがコンテナを処理しようとするのではなく、静的リソースへの呼び出しがコンテナのデフォルトサーブレットにディスパッチされます。

さらに、次のような絶対パスを使用してリソースを参照してください。

<script src='${pageContext.request.contextPath}/WebContent/javascriptmvc/steal/steal.production.js'/>
于 2012-10-08T18:58:59.227 に答える
0

返信してくれたおかげで問題は解決しました....このコードをサーブレットxmlファイルに追加しました。

<?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:mvc="http://www.springframework.org/schema/mvc"
       xmlns:util="http://www.springframework.org/schema/util"   
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:oxm="http://www.springframework.org/schema/oxm"
       xsi:schemaLocation="http://www.springframework.org/schema/oxm    
    http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/util
    http://www.springframework.org/schema/util/spring-util-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com.mkyong.common.controller" />
<mvc:annotation-driven />
<mvc:resources mapping="/resources/**" location="/resources/" />

次に、jspファイルにこれを追加して、jsファイルをロードしました

<script type='text/javascript' src="${pageContext.request.contextPath}/resources/javascriptmvc/steal/steal.production.js"></script>

また、ディレクトリstrcutureを多少変更しました

-webapps
    -WEB-INF
        -web.xml
        -mvc-dispatcher0servlet.xml
        -pages
            -hello.jsp
    -resources
        -javscriptmvc
            -steal
                -steal.production.js
于 2012-10-09T13:56:56.970 に答える