ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Java質問&情報提供サイトコミュのJSPでの外部ファイルのパス指定

  • mixiチェック
  • このエントリーをはてなブックマークに追加
JSP内で外部ファイルを読み出して利用する際に、コンテキストルート以下からのパス指定で読み込ませたいのですがうまくいきません。
初歩的な事のような気がするのですが教えてください。

やりたいことは、JSP内からJSK6.0から実装されたスクリプティング機能を使ってJavaScriptファイルを読み込みたいのです。

環境は以下の通りです。
OS:WindowsXP
JDK:1.6.0.03
tomcat:6.0.16
IDE:Eclipse3.3(Pleiades All in One の Ultimate)

絶対パスならうまくいくのですが、相対パスだとFileNotFouldになってしまいます。
"/js/test.js"のような指定はできないのでしょうか?
(WebContentsまでのパスを省略したい)

コメント(4)

JSPのソースは以下の通りです。


<?xml version="1.0" encoding="windows-31j" ?>
<%@ page language="java" contentType="text/html; charset=windows-31j"
pageEncoding="windows-31j"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@page import="javax.script.ScriptException"%>
<%@page import="javax.script.ScriptEngineManager"%>
<%@page import="javax.script.ScriptEngine"%>
<%@page import="java.io.FileReader"%>
<%@page import="java.util.List"%>
<%@page import="bean.TestBean"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j" />
<title>Insert title here</title>
</head>
<body>
<%
List<TestBean> beanList = (List<TestBean>)request.getAttribute("beanList");
Object json = null;
if (beanList != null) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
try {
engine.put("json", beanList);
engine.eval(new FileReader("D:/pg/workspace/scripting/WebContent/js/test.js"));
json = engine.get("json");
} catch (ScriptException ex) {
ex.printStackTrace();
}
}
%>
test.jsp<br />
json : <%= json %>
</body>
</html>
以下のようにして、コンテキストルートからの相対パスを記述すればよいと思います。

request.getContextPath() + "/js/test.js"
request.getContextPath() を使えばいいのですね!

ありがとうございます。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Java質問&情報提供サイト 更新情報

Java質問&情報提供サイトのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング