【概要】
現状「tal:attributes="value self/birthdate"」と書くとPageクラスのプロパティから値を取得する。
そして「tal:attributes="value birthdate"」と書くとRequestParameterから値を取得し、なければ、
Pageクラスのプロパティから値を取得するというマルチな特殊な動きをする。
この「self/」を付与しない記法は、主にDate型プロパティのバリデーション再描画に利用するが、
この記法に以下のデメリットがある:
o パッと見が直感的でない *1
o 機能の説明がとてもしづらい
*1: 付け忘れかなのかどうか判断しづらい
そのため、もう少し明示的な書き方をする方が良いかと思われる。
もともとこれは、
「tal:attributes="request/parameter(birthdate) | self/birthdate"」
の省略記法になる。
このもともとの書き方は非常にわかりやすいがあまりに煩雑である。
そこで、短めで明示的な記法を導入してはどうかというところである。
【解決案】
「tal:attributes="reqself/birthdate"」
と書くことで
「tal:attributes="request/parameter(birthdate) | self/birthdate"」
と同義にすることはできないか!?
短めであり、かつ、直感的でもある。
(Requestの方を優先してるという仕様も直感的で覚えやすい)
会話でも「レックセルフ」と呼びやすく覚えやすい。
一案なので
「tal:attributes="req-self/birthdate"」
とか
「tal:attributes="req$self/birthdate"」
とかでも良い。