2011-10-29 8 views
5

SpringSource Tool Suite 2.8.0をインストールしました。 私はSpring MVCテンプレートを出発点としてJSPファイルをJSPにインクルードしようとしています。 私のJSPは次のよ​​うになります。STS Spring MVC:JSファイルをJSPに含める方法

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%@ page session="false" %> 
<html> 
<head> 
    <title>Home</title> 
    <script type="text/javascript" src="/a.js"></script> 
</head> 
<body> 
    Hello world! 
</body> 
</html> 

a.jsメイン\リソース\ SRCの下で、次のようになります。

window.alert("A"); 

結果はつまり、 "こんにちは、世界!" -

JSファイルを別の場所に置いて、 "/"を付けずにsrcを変更し、さらに "default"を使用するようにweb.xmlにサーブレットマッピングを追加してみました。 「* .jsファイル」のサーブレット。 何も動いていないようにみえ。

私が間違って何をしているのですか?

+0

関連:http://stackoverflow.com/questions/3655316/servlets-browser-cant-access-css-images-when-doing-a-forward-to-a-jsp – BalusC

+1

STSは実際にここに。あなたは標準的なJava Webアプリケーションをパッケージ化しようとしています。 – jiggy

答えて

3

は、あなたの.warファイルに含まれてばかりのjsファイルのですか?私は通常/ srcの中に私のJSとCSSを置きますmain/webapp。src/main/webapp/jsやsrc/main/webapp/cssのようなもの。

第2に、c:urlを使って適切に参照できます。アプリのコンテキストをそこに置いておきます。

<script type="text/javascript" src="<c:url value="/a.js" />" /> 

あなたはa.jsのために404を取得しているかどうかを確認するために放火犯やChromeの開発ツールを使用して、それが実際に要求しているもののパスを見ることができます。

+0

ありがとう! c:urlを使用してsrc/main/webappにファイルを移動し、web.xmlで「* .js」の「デフォルト」サーブレットを使用するサーブレットマッピングを追加するという組み合わせを使用しました。 –

3

これらのjsファイルをwebappフォルダに配置することをお勧めします。 (私は通常Webアプリケーション/リソース/ JSの下に置く)

そして、このパスにアクセスできるように、私はMVCを使用します。リソースタグ:

このタグは、特定の次の静的リソース要求を可能にURL リソースロケーションの リストのいずれかからResourceHttpRequestHandlerによって提供されるパターン。これにより、Webアプリケーションルート以外の場所からの静的リソース をクラスパス上の場所を含む に提供する便利な方法が提供されます。 cache-periodプロパティは、 で、将来の有効期限ヘッダー(Page SpeedやYSlowなどの最適化ツールの推奨値は )を設定することができます。 クライアントによって効率的に利用されます。また、 は、 クライアントが既にキャッシュしているリソースに対して、 不要なオーバーヘッドを避けるために、 の304ステータスコードが適切に返されるようにLast-Modifiedヘッダー(存在する場合)を適切に評価します。たとえば、次のようにウェブ アプリケーションのルート内の公共-resourcesディレクトリから**/ /リソースのURLパターンでリソース要求を提供するために、タグを使用することになります。

<mvc:resources mapping="/resources/**" location="/public-resources/"/> 

出典: Spring Reference

関連する問題