org.opengion.fukurou.xml
クラス JspIncludeReader
java.lang.Object
org.opengion.fukurou.xml.JspIncludeReader
public class JspIncludeReader
- extends java.lang.Object
このクラスは、jspファイルのXSLT変換に特化した、Readerオブジェクトを作成するクラスです。
jspファイル に記述される、jsp:directive.include を見つけて、そのファイル属性に
記述されているファイルを、インクルードします。
Tomcat の特性上、インクルード時のファイルは、&等のエスケープを処理しておく
必要があります。
エスケープの前処理は、jsp:root タグのあるなしで判定します。
現時点では、 & , < , <= , > , >= を前処理します。
JSP では、og:head タグで、<html> を出力したり、htmlend.jsp インクルードで
</body></html> を出力していますが、フレームや、フォワードなど、整合性が
取れないケースがありますので、XML処理用として、<html> を出力していません。
変換結果を、正式な HTML ファイルとして再利用される場合は、ご注意ください。
なお、このクラスは、マルチスレッド対応されていません。
- 変更履歴:
4.0.0.2 (2007/12/10) 新規追加 |
- バージョン
- 4.0
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK5.0,
メソッドの概要 |
static void |
cacheClear()
インクルードしたファイルのキャッシュをクリアします。 |
java.lang.String |
getIncludeFiles()
インクルードしたファイル名(相対パス)のリスト文字列を返します。 |
java.lang.String |
getString(java.io.File file,
java.lang.String encode)
JSP のインクルードを考慮した、JSPファイルを、String で返します。 |
static void |
main(java.lang.String[] args)
テスト用の main メソッド |
クラス java.lang.Object から継承されたメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
JspIncludeReader
public JspIncludeReader()
getString
public java.lang.String getString(java.io.File file,
java.lang.String encode)
- JSP のインクルードを考慮した、JSPファイルを、String で返します。
このメソッドは、内部で再帰定義されています。つまり、jsp:directive.include
文字列が見つかった場合は、その代わりに、ファイル名を取出して、もう一度
このメソッドを呼び出します。インクルードファイルとの関連をチェックする為に
ダミーのspanタグを入れておきます。
<span type="jsp:directive" include="ファイル名"><!-- --></span>
ただし、ソースチェック時に、
Ver4 以降で、インクルードファイルに、XML宣言と、jsp:root を付与するケースがあります。
擬似的に取り込むときには、XML宣言は削除します。
- パラメータ:
file
- JSPファイルencode
- ファイルのエンコード
- 戻り値:
- インクルードを考慮した、JSPファイル
- 変更履歴:
5.2.1.0 (2010/10/01) directive.include で、XMLタグとroot タグは取り込まない。 |
5.2.1.0 (2010/10/01) エスケープ処理の引数を廃止します。 |
5.6.5.2 (2013/06/21) 小細工内容の変更。replaceAll にするのと、スペースまたはタブを使用します。 |
5.6.7.1 (2013/08/09) コメントの処理のバグ修正。includeファイル名保存。 |
5.6.7.1 (2013/08/09) includeファイルが存在しない場合は、gf共有から取得する。 |
5.6.7.2 (2013/08/16) includeファイルを取り込む場合、代わりのspanタグを出力しておきます。 |
5.6.7.4 (2013/08/30) includeファイルの先頭のpageEncoding指定のチェック用 span タグの出力 |
getIncludeFiles
public java.lang.String getIncludeFiles()
- インクルードしたファイル名(相対パス)のリスト文字列を返します。
通常は、XSLT変換処理でエラーが発生した場合は、includeファイルの整合性が
おかしい場合が多いので、デバッグ情報として利用します。
ただし、エラー発生時の位置特定まではできません。
この内部変数は、インスタンス変数ですので、includeファイルのキャッシュとは寿命が異なります。
- 戻り値:
- includeファイル名のリスト文字列
- 変更履歴:
5.6.7.1 (2013/08/09) 新規追加 |
cacheClear
public static void cacheClear()
- インクルードしたファイルのキャッシュをクリアします。
キャッシュは、インスタンスではなく、スタティック変数で管理しています。
よって、一連の処理の初めと最後にクリアしておいてください。
- 変更履歴:
5.6.7.1 (2013/08/09) 新規追加 |
main
public static void main(java.lang.String[] args)
- テスト用の main メソッド
- パラメータ:
args
- コマンド引数配列
Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.