それはいいのだけど、そもそもエラーがあんのか?ある場合だけJSPで特定の処理を入れたいってことがあった。
まずは、<html:errors/>のタグでisEmptyや、hasErrorっぽいオプションがないか調べてみたがなし。
仕方ないのでスクリプトレットでrequestから取り出してゴニョゴニョするしかないと思ったがはソース汚れるしやりたくない。
更に仕方ないのでそういうタグリブを自作かな?って思ったのだけど、そういうの既にありそうだし作りたくない。
何かないなかーって思ってたら、JSTLにRequestタグライブラリなるものが有り、その中にexistsAttributeってのがある。
まさにそれっぽい。早速やってみる。
すでに設定済のTaglibsStandardには、どうやら含まれてないみたいなので別途取得。
今回は、Mavenでやる。
<dependency>
<groupId>taglibs</groupId>
<artifactId>request</artifactId>
<version>1.0.1</version>
</dependency>
次にJSPファイルのtaglibディレクティブで属性uriを記述する。
(web.xmlでURIマッピングを行う方法もあるけどお好みで。)
<%@taglib prefix="req" uri="http://jakarta.apache.org/taglibs/request-1.0" %>
そしてJSPにて、
<req:existsAttribute name="org.apache.struts.action.ERROR">
エラーがあるときだけやりたい処理書く。
</req:existsAttribute>
とするとうまくいった!こんなライブラリあったとは今まで知らなかった。これから活用しよう。
ちなみに、Session版、Response版もあるみたい。機会があれば使ってみよう。