2017-11-30 9 views
0

私はフリーマーケットテンプレートを使用してアセットパブリッシャーにリストされているウェブコンテンツを表示しています。したがって、このFreemarkerテンプレートのポートレットネームスペースにアクセスする

<#attempt> 
    <#assign namespace = request["portlet-namespace"]> 
    <#recover> 
    <#assign namespace = 'undefined'> 
</#attempt> 

のような(エントリを印刷するような)一部の資産の機能を利用するために、私はポートレットの名前空間を割り当てるためにしようとしているテンプレートで

、印刷ボタンは

以下、TEのコードを保持していますとき:
<a href="javascript:${namespace}printPage_0();" title='Print'> 

printPageはすべてが正常に動作している、まあasset_print.jspf

でのLiferay資産の発行者のコードで使用される方法であり、ブラウザでページを調べて、名前空間が計算され、名前空間変数に割り当てられていることを確認しました(UIにエラーは表示されません)。しかし、Liferayのポータルは

Expression request["portlet-namespace"] is undefined on line 

資産の発行者から(すなわち。上の続きを読むクリック)ユーザーは全体のWebコンテンツを参照しようとするたびに、以下を記録します誰もがこの問題を見ていますか? freemarkerテンプレートでポートレット - 名前空間を取得する別の方法はありますか?

答えて

1

#attempt/#recoverは、通常の状況から回復するためのものではなく、デフォルトでは回復時にエラーをログに記録します(オペレータに警告が表示されます)。 (undefinedprintPage_0();は理にかなって印刷、なぜ私はよく分からないけど、それは別の問題です。)

<#assign namespace = request["portlet-namespace"]!'undefined'> 

:あなたは代わりに exp!default演算子を使用する必要があります
関連する問題