- 2008年12月20日 11:25
- しらべる
mayaaでタグ処理の前にリクエストパラメータの下ごしらえをしておきたいときがあります。そのときに注意しておきたい点を1つメモ。
たとえば、http://example.com/sample?hoge=mogeというリクエストをmayaaで処理する場合、プロセッサでは、 ${hoge} でパラメータを参照できます。
//mayaaファイル
<m:write value="${hoge}"/>
//出力
moge
このhogeをbeforeRenderのスクリプトで処理する場合、${hoge}はJavaScriptのstringオブジェクトとしてあつかわれます。
//mayaaファイル
<m:beforeRender><![CDATA[
function getA(){
return hoge.length;
}
]]>
</m:beforeRender>
<m:write value="${getA()}" />
//出力(lengthはプロパティだから文字数が帰る)
4
このhogeをJavaのStringオブジェクトとして扱いたい場合は、明示的に初期化してあげる必要がある
//mayaaファイル
<m:beforeRender><![CDATA[
function getB(){
var h = new java.lang.String(hoge);
return h.length;
}
]]>
</m:beforeRender>
<m:write value="${getB()}" />
//出力(lengthはメソッドだから関数が帰る)
function length() {/*
int length()
*/}
たとえば、hoge.startsWith('ho');とかは明示的に初期化しないと使用できず、パースエラーになります。
