inputCommaTextで小数点以下を有効に
inputCommaTextはデフォルトだと小数点以下は無効になってますが、$なんかを入力する場合は少数点以下も必要です。
という訳で今日はinputCommaTextで小数点以下を有効にしてみたいと思います。
コンポーネントリファレンスによれば「fraction」というタグの属性を指定すればOKらしい。ということは
<input type="text" id="aaa" class="T_currency" fraction="2" />
みたいにすればOKってこと?
いや、待てよ。fractionなんて属性勝手に作って動くのか?と思いながら実行。
やっぱりダメでした。
そこでteeda-html-exampleから「タグの属性」を指定しているものを探してみる。
するとselectManyCheckbox.htmlで
<span id="aaa" te:layout="pageDirection">
としている箇所を発見。style属性はチェックボックスの並び(縦/横)を指定するものらしい。
なるほど、独自のタグは「te:」ってやる訳ね・・・ということで
<input type="text" id="aaa" class="T_currency" te:fraction="2" />
ってしましたが、「そんなタグないよ」みたいな警告が出ます。
selectManyCheckbox.htmlと見比べてみるとselectManyCheckbox.htmlの1行目はこうでした。
<html xmlns:te="http://www.seasar.org/teeda/extension">
そういえばカスタムタグを使う場合は云々ってのをどっかで見た気が・・・。
今度こそいけると思って実行してみましたが、結果は×。
selectManyCheckboxの方ではTSelectTagBase#setPropertiesの時点でちゃんと「style=pageDirection」になってるけど、こっちはTInputCommaTextTag#setPropertiesの時点で「fraction=#{hoge_hogePage.aaaFraction}」なのがいけないんだろうな・・・。
6/18追記
layoutを使うとダメっぽいというコメントを頂いたのでlayoutなしでやってみました。
Doltengでプロジェクトを作成し(Super Agile)、以下のhtmlとpageクラスを作成。
hoge.html
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:te="http://www.seasar.org/teeda/extension" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> </head> <body> <form id="hogeForm"> <span id="allMessages"></span> <input type="text" id="aaa" class="T_currency" te:fraction="2"/> </form> </body> </html>
HogePage.java
package hatena.hoge.web.hoge; public class HogePage { private String aaa; public String getAaa() { return aaa; } public void setAaa(String aaa) { this.aaa = aaa; } public Class initialize() { return null; } public Class prerender() { return null; } }
aaaをIntegerにしてもダメでした。何が悪いのでしょう??
6/19追記
コメントにある通りで1.0.8からは↑の方法で上手く動くようになります。