今日もStruts2ネタを1つ。
Struts2でエラーメッセージを「表示」しようとすると、
アクションエラー(全体で1つ)
フィールドエラー(各フィールドごと)
の2種類が考えられる
そして、エラーのチェック方法としては、
1.アクションクラス名-validation.xmlを作成して、チェック
2.@Validationsでアノテーションを使ってチェック
3.validate()メソッドを使ってチェック
と3通り考えられます(もっとあるかもしれないけど・・・)
ここでは、2と3の方法を取り上げます。
■サンプル
【御題】
名前になにもいれないと、フィールドエラーとして、名前のところにエラーが出て
開始数に何もいれないと、アクションエラーとして、一番上にエラーが出る
開始数がマイナスだと
フィールドエラーとして、開始数のところにエラーがでる。
【ソースコード:変更のあるもののみ】
基本的にソースは
Struts2でINPUTタグの値を読む方法(ServletRequestAwareの利用法)
http://blog.goo.ne.jp/xmldtp/e/469a8c3f14f5b8fc8584018b58ff8268
と同じなので、相違点のみ、掲載します。
●index.jsp
アクションエラー、フィールドエラーの指定をします。
フィールドエラーは、s:fielderrorタグだけだと、すべてのフィールドエラーが表示される為、
その中で、s:paramを使って限定しています。
●struts.xml
エラーのとき、入力画面に戻るために、inputの設定をします
●gui.HelloAction.java
2.@Validationsでアノテーションを使ってチェック
3.validate()メソッドを使ってチェック
の両方を追加しています。
【注意】
・エラーメッセージを表示する為に画面を書き換える。そのときsタグで指定したものは、値が入ってくるが
INPUTタグで書いたもの(開始数)は、値が入ってこない(3枚目の写真参照)。自分で設定すること
■参考サイト
1.http://d.hatena.ne.jp/cazzie/20080131/1201795354
2.http://kinjouj.github.io/2013/09/struts2-6-form-validation-1.html
3.http://cmslabs.blogspot.jp/2011/02/struts-2_21.html
Struts2でエラーメッセージを「表示」しようとすると、
アクションエラー(全体で1つ)
フィールドエラー(各フィールドごと)
の2種類が考えられる
そして、エラーのチェック方法としては、
1.アクションクラス名-validation.xmlを作成して、チェック
2.@Validationsでアノテーションを使ってチェック
3.validate()メソッドを使ってチェック
と3通り考えられます(もっとあるかもしれないけど・・・)
ここでは、2と3の方法を取り上げます。
■サンプル
【御題】
名前になにもいれないと、フィールドエラーとして、名前のところにエラーが出て
開始数に何もいれないと、アクションエラーとして、一番上にエラーが出る
開始数がマイナスだと
フィールドエラーとして、開始数のところにエラーがでる。
【ソースコード:変更のあるもののみ】
基本的にソースは
Struts2でINPUTタグの値を読む方法(ServletRequestAwareの利用法)
http://blog.goo.ne.jp/xmldtp/e/469a8c3f14f5b8fc8584018b58ff8268
と同じなので、相違点のみ、掲載します。
●index.jsp
アクションエラー、フィールドエラーの指定をします。
フィールドエラーは、s:fielderrorタグだけだと、すべてのフィールドエラーが表示される為、
その中で、s:paramを使って限定しています。
<%@ page contentType="text/html; charset=utf-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <HEAD> <TITLE>HelloTest</TITLE> </HEAD> <BODY> <s:actionerror /> <s:form action="hello.action" theme="simple"> 名前 :<s:textfield name="name"/><s:fielderror><s:param value="%{'name'}" /></s:fielderror><br/> 開始数:<input type="text" name="start"/><s:fielderror><s:param value="%{'start'}" /></s:fielderror><br/> <br/> <s:submit type="button" value="実行" /> </s:form> </BODY> </html> |
●struts.xml
エラーのとき、入力画面に戻るために、inputの設定をします
|
●gui.HelloAction.java
2.@Validationsでアノテーションを使ってチェック
3.validate()メソッドを使ってチェック
の両方を追加しています。
|
【注意】
・エラーメッセージを表示する為に画面を書き換える。そのときsタグで指定したものは、値が入ってくるが
INPUTタグで書いたもの(開始数)は、値が入ってこない(3枚目の写真参照)。自分で設定すること
■参考サイト
1.http://d.hatena.ne.jp/cazzie/20080131/1201795354
2.http://kinjouj.github.io/2013/09/struts2-6-form-validation-1.html
3.http://cmslabs.blogspot.jp/2011/02/struts-2_21.html