includeタグを使うと外部ファイルをインクルードすることができます。 通常はファイルが存在することを前提にすると思いますが、たとえば変数を使って動的に読み込みファイル名を決めたり、あるいはWARファイル作成時にsubversionのリビジョン情報の書かれたファイルを同梱する、といったことも無いとは言えません。 対処と言っても難しいことはなく、ファイルが存在しない場合はTemplateNotFoundException 例外が発生しますので、 下記のように、try~catch で挟んで例外を捕捉するだけでよいです。
%{ try { %}
#{include 'adm/'+type.name+'/list.custom.html' /}
%{ } catch (play.exceptions.TemplateNotFoundException e) { }%
ファイル読み込みできませんでした.
%{ } }%
カスタムタグ安全なインクルードを行うカスタムタグを作ってみました。エラーにならず代替文字を表示します。 safeInclude.html %{ try { (_arg ) && (_src = _arg); if (!_src) { throw new play.exceptions.TagInternalException("src attribute cannot be empty for safeInclude tag"); } %} #{include _src /} %{ } catch (play.exceptions.TemplateNotFoundException e) { }% #{doBody/} %{ } }%
使い方1ファイルが見つからないときは何にも置換されず、スルーします。 #{saleInclude 'myfile.txt' /}
使い方2ファイルが見つからないときは指定したエラーメッセージに置換します。 #{saleInclude 'myfile.txt' }ファイルが見つかりません #{/saleInclude}
|
 Updating...
ly copins, 2015/07/24 23:40
|