Springのform系のタグを拡張する場合
- #Java
- #Spring Boot
- #HTML
- #Tips
- 2018/08/24
form系のタグを拡張する場合
- form系のタグは全てバインドを確認するため(path属性で)Modelのデータと紐付きがないとバインドエラーが発生してしまう。
- ほとんどのクラスでresolveIdメソッドを使用しておりHTMLに変換された際にid属性に自動的にpathと紐付いた値が設定されてしまう。
- idを設定したくない場合(JavaScript等で使用させたくない等)はresolveIdをオーバーライドして設定されていない場合はnullを返すことで自動設定を回避できる。
分岐系のタグを作成する場合
- 分岐系のタグはタグの内部でwriteTagContentメソッドをオーバーライドしタグのBody部を評価するかしないかをreturnすることで判定をはじめとする行う。
HTMLに変換された際にタグではなくそのまま出力したい場合
- おすすめは出来ませんがやむを得ずそのまま出力したい場合はTagWriterは使用しません。
- Springタグを継承して拡張する場合には親クラスのフィールドにPageContextを持っているためこれを使用する。
- ↓でJspWriterから直接書き込む方法でそのまま出力できる。
this.pageContext.getOut().print("文字")
その他HowTo
- requestを取得したい場合はpageContextより取得する事が可能。
- 拡張タグを作成したらtldファイルでパッケージを含めたフルパスで対象クラスを指定する。(新規でtldファイルを作成するときはWEB-INF配下に配置すること。)
- 使用するJSPでtld宣言(taglib)を指定することで、そのJSPで拡張タグを使用することができる。
Share:
X (Twitter)