http://www.opencbank.net/
cBankSupport topreleaseFAQversionLicensepatch_downloadsupport_info
マークは、次期バージョンにて対応予定です。
マークは、スケジュールは未定ですが今後対応する予定です。
(無印)は、既にリリース済み製品で対応されたものまたは、回答(A.〜)により解決やクローズされた項目です。


【件 名】
ContentsManagerの環境変数初期化タイミングについて

【日 付】 (2002/02/05) 【Q番号】[0202005] 【製 品 名】 cContentsTemplate(Ver. 3.3.1)
 ContentsTemplateを利用してHTMLを生成して画面出力を行っているのですが、デフォルトのHTMLシンボルキャラクター
変換機能がONになっている為、そのままだと出力する全てのタグがエスケープされてしまいます。

 そこで変換機能をOFFにしようと、cFrameworkのMainServletを継承したクラスのservice()の最初でContentsManager.setEnv()で
OFFにしたのですが、表示は全てエスケープされてしまいました。
getEnv()で調べたところ、ScreenHandlerが呼ばれる直前とviewクラスのtoString()の開始時の間のどこかで環境変数が
リセットされているようで、MainServletに戻ってきたときにはONになっていました。

 この現象は1回目の表示のみ起こる(2回目以降はOFFが維持される)ようなので、ScreenHandler#init()をオーバーライドして
super.init()後にsetEnv()してみましたが、やはり結果は変わらず、結局環境変数がリセットされているのはScreenHandler#init()後〜view#toString()の間、というところまでしか突き止められませんでした。

 この場合、1回目の表示からHTMLシンボル変換機能をOFFにするにはどうしたら良いでしょうか?

cContentsTemplate Ver.3.3.1の障害です。
原因はContentsManagerのコンストラクタでデフォルトの設定(setEnv(ENV_SYMBOL_HTML, ENV_ON))をしているので
Viewクラスロード時に初期化されてしまうためです。
この件についてはcContentsTemplate Ver.3.3.2で対応しました。

尚、現バージョンでの回避策を以下に示します。

   1.システム全体で指定する場合
Viewクラスのサブクラスで以下のコーディングをしてください。
contentsManager.setEnv(ContentsManager.ENV_SYMBOL_HTML, ContentsManager.ENV_OFF);

  2.画面単位で指定する場合
Viewクラスのサブクラスで以下のコーディングをしてください。
ContentsData cd = this.getContentsData(getTemplateFullPath(), false);

  3.出力項目単位で指定する場合
テンプレートファイルのフォーマット宣言部にtfを指定。
%String_TARGET_CONVERT_(tf)%

   ※ この場合はコーディングで指定する必要はありません。
   セキュリティ上出力項目単位に設定することをお勧めします。