パッケージ org.opengion.fukurou.xml
クラス JspIncludeReader
- java.lang.Object
-
- org.opengion.fukurou.xml.JspIncludeReader
-
public class JspIncludeReader extends Object
このクラスは、jspファイルのXSLT変換に特化した、Readerオブジェクトを作成するクラスです。 jspファイル に記述される、jsp:directive.include を見つけて、そのファイル属性に 記述されているファイルを、インクルードします。 Tomcat の特性上、インクルード時のファイルは、&等のエスケープを処理しておく 必要があります。 エスケープの前処理は、jsp:root タグのあるなしで判定します。 現時点では、 & , < , <= , > , >= を前処理します。 JSP では、og:head タグで、<html> を出力したり、htmlend.jsp インクルードで </body></html> を出力していますが、フレームや、フォワードなど、整合性が 取れないケースがありますので、XML処理用として、<html> を出力していません。 変換結果を、正式な HTML ファイルとして再利用される場合は、ご注意ください。 なお、このクラスは、マルチスレッド対応されていません。- 導入されたバージョン:
- JDK5.0,
-
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 JspIncludeReader()
-
メソッドの概要
すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 static void
cacheClear()
インクルードしたファイルのキャッシュをクリアします。String
getIncludeFiles()
インクルードしたファイル名(相対パス)のリスト文字列を返します。String
getString(File file, String encode)
JSP のインクルードを考慮した、JSPファイルを、String で返します。static void
main(String[] args)
テスト用の main メソッド。void
setRealPath(String path)
jspInclude=true 時に、/jsp/common/** 等の include ファイルが存在しない場合の共有取得場所を指定します。
-
-
-
コンストラクタの詳細
-
JspIncludeReader
public JspIncludeReader()
-
-
メソッドの詳細
-
getString
public String getString(File file, String encode)
JSP のインクルードを考慮した、JSPファイルを、String で返します。 このメソッドは、内部で再帰定義されています。つまり、jsp:directive.include 文字列が見つかった場合は、その代わりに、ファイル名を取出して、もう一度 このメソッドを呼び出します。インクルードファイルとの関連をチェックする為に ダミーのspanタグを入れておきます。 <span type="jsp:directive" include="ファイル名"><!-- --></span> ただし、ソースチェック時に、 Ver4 以降で、インクルードファイルに、XML宣言と、jsp:root を付与するケースがあります。 擬似的に取り込むときには、XML宣言は削除します。- パラメータ:
file
- JSPファイルencode
- ファイルのエンコード- 戻り値:
- インクルードを考慮した、JSPファイル
-
setRealPath
public void setRealPath(String path)
jspInclude=true 時に、/jsp/common/** 等の include ファイルが存在しない場合の共有取得場所を指定します。 引数の処理対象ファイル(transformの引数ファイル)が、『.jsp』で、かつ、jspInclude=true の場合、 そのファイルを INCLUDE するのですが、/jsp/common/** 等の include ファイルは、 エンジン共通として、jspCommon6.x.x.x.jar で提供しています。 従来は、処理対象jspの相対パスで、../../../gf/jsp/commom/** を取り込んでいましたが、 Tomcat起動フォルダ以外のシステムのJSPチェックなどを行う場合は、gf フォルダが存在しない ケースがあります。 そこで、確実にgf が存在する、処理をキックしている環境の gf を使用するように変更します。 その環境とは、つまり、エンジン内部変数の REAL_PATH ですが、jsp などが実行していないと取得できません。- パラメータ:
path
- /jsp/common/** 等の include ファイルの共有取得場所
-
getIncludeFiles
public String getIncludeFiles()
インクルードしたファイル名(相対パス)のリスト文字列を返します。 通常は、XSLT変換処理でエラーが発生した場合は、includeファイルの整合性が おかしい場合が多いので、デバッグ情報として利用します。 ただし、エラー発生時の位置特定まではできません。 この内部変数は、インスタンス変数ですので、includeファイルのキャッシュとは寿命が異なります。- 戻り値:
- includeファイル名のリスト文字列
-
cacheClear
public static void cacheClear()
インクルードしたファイルのキャッシュをクリアします。 キャッシュは、インスタンスではなく、スタティック変数で管理しています。 よって、一連の処理の初めと最後にクリアしておいてください。
-
-