2011-07-22 17 views
0

(テキスト)ファイルの内容をJSPに書きたいと思います。私はタグ内からこれを行います ファイルの内容を取得し、 "pageContext.getOut()"の呼び出しによって生成されたオブジェクトに、自分のタグから書き込むための最良の方法は何ですか?私はあなたがapache commons-io library使用することができ、さまざまな読者、作家やバッファなどファイルの内容をjspに書き込む

答えて

2

が不明だとして

は私が尋ねます。これは、文字列としてファイルの内容を取得するためのユーティリティメソッドがあります。

String contents = FileUtils.readFileToString(new File("somefile.txt")); 

注意を - この便利なメソッドは、小さめのファイルで使用するためのものです。ファイルが大きい場合、ストリーミングアプローチが必要とされている(あなたがファイルからそれらを使用する上で出力ストリームにバイトを書き込む場合)

+3

を私は**ない*だろう*ファイル全体をメモリに読み込むことをお勧めします。 –

+0

ファイルが大きい場合はtrueです。注釈を追加するための回答を編集しました。 +1良いコメント。 – Bohemian

0

<jsp:include page="myfile.txt"> 

リーダ/ライター/バッファなどは必要ありません。

+0

これは、ファイルが同じWebプロジェクト/ WEB-INFにある場合にのみ動作します。 – Thomas

+0

トーマス、あなたは正しいです。ファイルがプロジェクトに配置されていないためです。このオプションは実行可能ではありません –

1

スクリプトレットを使用したくない場合は、静的メソッドを提供するJSTL関数と同様の関数クラスを作成します。次に、式を使用してファイルを読み取ります。

例:あなたのJSPで

<function> 
    <name>readTxtFile</name> 
    <function-class> 
    your.pkg.FileAccess 
    </function-class> 
    <function-signature> 
    java.lang.String readTxtFile(java.lang.String) 
    </function-signature> 
</function> 

そして最後に:あなたはこのエントリがあるだろう、あなたのtaglibファイルで

package your.pkg 

public class FileAccess { 
    public static String readTxtFile(String filename) { 
    return FileUtils.readFileToString(new File(filename)); //used Bohemian's suggestion here :) 
    } 
} 

<%@taglib prefix="f" uri="your taglib uri" %> 

${f:readTxtFile('path/to/myfile.txt')} //reads the file and writes the return value to the JSP 
関連する問題