2016-09-29 3 views
3

私はstrutsでウェブサイトを開発しています。次のように私のフォルダ構造は次のとおりです。WEB-INF内部からのjavascriptファイルを含む

enter image description here

さて、私はjquery.validate.jsファイルを追加するには、JSPページregister.jspを、持っています。私は、次のリンクからの提案に従っている次のように

Can not include javascript file from WEB-INF directory in JSP.

私のコードはでした:

<script type="text/javascript" src='/LoginApp/WEB-INF/scripts/jquery.validate.js'></script> 

JSPファイルはできる:上記のコードは次のHTMLを生成し

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> 
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> 
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 

<title>Insert title here</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"> 
<script src="https://use.fontawesome.com/0c2573c7d6.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
<script type="text/javascript" src='<c:url value="/WEB-INF/scripts/jquery.validate.js"/>'></script> 

javascriptファイルjquery.validate.jsにはアクセスしないでください。 jspファイルからどのようにアクセスできますか?

よろしく、 Tanvir

このディレクトリ内のリソースは、デフォルト以外のパブリックであり、そして、あなたが使用してアクセスすることができますので、それは何らかの形で保護されたディレクトリであるとして、あなたは webapp/scriptsに外 WEB-INFファイル jquery.validate.jsを移動する必要があります
+2

あなたのリソースを直接 '/ scripts'ではなく '/ WEB-INF/scripts'に入れる理由は何ですか? –

+0

src = "$ {pageContext.request.contextPath} /scripts/jquery.validate.js"のようなものを使用してください。 –

+0

@NicolasFilottoわかりません。私はストラットとjavaに新しいです。私はこれを始めたのは1週間です。あなたはどこにjavascriptを置くことを提案しますか?この場合の基準はどちらですか?そして、どうすればそれにアクセスできますか? – Rumel

答えて

5

<script type="text/javascript" src='<c:url value="/scripts/jquery.validate.js"/>'></script> 
+0

ありがとうございます。あなたのソリューションは正しく機能しました。一つの質問があります。パスは常にwebappから始まりますか?私はなぜ値= "/ webapp/scripts/jquery.validate.js />"を使用しないのでしょうか? – Rumel

+1

はい、パスはwebappディレクトリから開始するか、より正確にはコンテキストパスのルートになります –

3

WEB-INFには公開されていないため、HTMLページはWEB-INF内のJSファイルにアクセスできません。

おそらく、最良の方法は、JSファイルをWEB-INF外に移動し、その場所へのリンクを変更することです。

他の代替は、JSファイルの内容をHTMLで<script>タグを生成することです:

<script> 
<%@include file="/WEB-INF/scripts/jquery.validate.js" %> 
</script> 

あなたがコンテンツを含めているとして、あなたは、ブラウザのキャッシュの利点を失っているのでご注意くださいHTMLのJSファイルのたびに

関連する問題