javascriptを書いていると、ログインしているユーザー自身の名前などのVelocityの変数をjavascriptの変数として使いたいような場合があります。
こういった時は、既存のポートレットでは、
<script type="text/javascript"> //<![CDATA[ aipo.schedule.login_id = "$current_user_id"; aipo.schedule.login_name = "$current_user_ln"; aipo.schedule.login_aliasname = "$current_user"; 〜略〜 //]]> </script>
https://github.com/aipocom/aipo/blob/master/portlets/schedule/src/main/webapp/WEB-INF/templates/vm/portlets/html/ajax-calendar-weekly.vm
や
<script type="text/javascript"> //<![CDATA[ #if(!$isMessageUser)document.body.className = "messageRoomList";#end dojo.addOnLoad(function() { 〜略〜 aipo.message.init("$portlet.ID", "$!jslink.getPortletById($portlet.ID)", true); 〜略〜 }); //]]> </script>
https://github.com/aipocom/aipo/blob/master/portlets/message/src/main/webapp/WEB-INF/templates/vm/portlets/html/message.vm
のようにテンプレートファイル(〜.vm)のscriptタグの中で設定しているようです。
AipoのGithubをCDATAで検索すると他にもいろいろと例が見れます。
https://github.com/aipocom/aipo/search?utf8=%E2%9C%93&q=CDATA
【備考】
・CDATAはXHTML中にjavascriptを書く時によく使う書き方です
参考:http://www.ajaxtower.jp/js/before/index3.html
・dojo.addOnLoadはDOMがreadyになったタイミング(直書きよりも遅延)で実行する関数
・ログインしているユーザー自身の名前を取得したい時には、jetspeed-header.vmで使われている$data.User.getUserName()を利用するのが、新たにcontext.putする必要が無いことが多いので便利そうでした。
https://github.com/aipocom/aipo/blob/master/war/src/main/webapp/WEB-INF/templates/vm/controls/html/jetspeed-header.vm