TapestryのScriptテンプレートで使用可能な残りのエレメントについて解説したいと思います。

if

名前そのままで、条件式を書くことにより、特定のJavaScriptを出力する、出力しないの指定が可能になります。

スクリプトテンプレートファイル

<input-symbol key="historyList" class="java.util.List" required="yes"/>
<if expression="hitoryList">
alert("historyList is true");
</if>

expressionにオブジェクトを指定するとnullの時false、それ以外の時trueになります。
もちろんhistoryListの型を、java.lang.booleanにしての条件分岐も可能です。

if-not

上記したifの逆の条件文を記述します。

スクリプトテンプレートファイル

<if-not expression="hitoryList">
alert("historyList is false");
</if-not>

include-script

外部JavaScriptファイルの読み込み指定をします。
複数のコンポーネントで使用するロジックは極力外部JavaScriptに集めブラウザのキャッシュを有効にさせる事でデータ転送量を少なくする事が可能になります。

スクリプトテンプレートファイル

<script>
<include-script resource-path="../../taglist.js" />
...
</script>

パスは、jwcファイルからの相対パス。もしくは/からの絶対パスを指定します。
上記の例では、WEB-INF/jwc/taglist.jwcに配置していますので、ブラウザが読み込み可能な位置(WEB-INFより上位ディレクトリ)にtaglist.jsを配置しています。

HTML出力結果

<body>
<script type="text/javascript" src="/tagraw/WEB-INF/jwc/../../taglist.js"></script>
...
</body>

set

OGNL式を利用して新しい変数(Symbol)を作成します。

let

テキストやSymbolを利用して新しい変数を作成します。
unique指定をすることで、複数のスクリプトテンプレート間での変数名の重複を防ぎます。