![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
Validator機能を使用し未入力チェック。
それ以外のエラーはアクションクラスにてチェックしようと考えております。
Validatorでは画面遷移させずに<html:errors />空間にエラーメッセージを表示させているのですが。
アクションクラスから同画面に遷移(?)し、<html:errors />にメッセージを表示させるにはどのようにすればよいでしょうか。
LoginAction.java--------------
if(!Error.IsNum(id) || !Error.IsNum(pass)){
//どこに何を返せばいいのかがわからない
return ?;
}
//正常であればそのまま遷移
return mapping.findForward("login");
No.1ベストアンサー
- 回答日時:
画面遷移とエラーメッセージの表示方法はいくつかあります。
1.
---- struts-config.xml ----
<global-exceptions>
<exception key="login.error" type="java.lang.Exception" path="/login.jsp" />
</global-exceptions>
または
<action path="/Login"・・・>
<exception key="login.error" type="java.lang.Exception" path="/login.jsp" />
<foward name="login" path="/aaa.jsp" />
</action>
---- MessageResource.properties ----
login.error=ログインID、またはパスワードが違います。
---- LoginAction.java ----
public ActionForward execute(ActionMapping mapping, ・・・) throws Exception {
if(!Error.IsNum(id) || !Error.IsNum(pass)){
throw new Exception("login error");
}
return mapping.findForward("login");
}
struts-config.xmlのglobal-exception(またはactionのexception)でExceptionから遷移先と、エラーメッセージを選択する方法
これを行う場合は独自のExceptionを作成したほうがいい。(LoginExceptionみたいな)
2.
---- struts-config.xml ----
<action path="/Login" ・・・>
<foward name="self" path="/login.jsp" />
<foward name="login" path="/aaa.jsp" />
</action>
---- MessageResource.properties ----
login.error=ログインID、またはパスワードが違います。
---- LoginAction.java ----
public ActionForward execute(ActionMapping mapping, ・・・) {
if(!Error.IsNum(id) || !Error.IsNum(pass)){
// エラーメッセージを登録
super.addErrors(request, new ActionMessage("login.error"));
// 遷移元(またはエラー画面)へ遷移
return mapping.findForward("self");
}
return mapping.findForward("login");
}
3.
<html:errors/>に表示されるのは「org.apache.struts.action.ERROR」の名前で登録されたActionMessagesなので
---- LoginAction.java ----
public class LoginAction {
private ActionMessages error = new ActionMessages();
public ActionForward execute(ActionMapping mapping, ・・・) {
if(!Error.IsNum(id) || !Error.IsNum(pass)){
// エラーメッセージを登録
error.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("login.error"));
request.setAttribute("org.apache.struts.action.ERROR", error);
// 遷移元(またはエラー画面)へ遷移
return mapping.findForward("self");
}
//正常であればそのまま遷移
return mapping.findForward("login");
}
3はお勧めしません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP php ログイン 1 2022/11/01 00:24
- Java Javaプログラミングの質問になります。 ボタンを押下した時に画面遷移して 画面から戻ってきた時のi 1 2023/06/26 07:50
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- 宇宙科学・天文学・天気 銀河のハビタブルゾーンを確率的セルオートマトンという数値的にシミュレーションした結果、「群島」の様な 2 2023/06/06 23:10
- au(KDDI) 特定の画面を見るとスマホが固まります ご覧頂き有難うございます。 特定のページを見るとスマホが固まり 1 2023/08/21 19:29
- オープンソース AWSドメイン名でApacheテスト・ページを表示させる方法を教えて下さい。 1 2023/04/26 15:59
- HTML・CSS htmlで画面遷移させたい 1 2022/10/28 18:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Python言語のAnacondaの話です ...
-
三菱GOTの画面切り替えについて
-
ASP.NET 画面遷移前の状態を保...
-
子画面から孫画面をポップアッ...
-
C言語で今まで表示していた画面...
-
Javascriptのhistory.back()が...
-
登録後、呼び出し元ページに戻...
-
[VB6]画像切り取り
-
C# ログイン画面からメイン画面...
-
ServletからServletへの値渡し
-
Java Struts Validator
-
Android標準ブラウザの自動縮小...
-
Java-jspの画面入力値保持について
-
Webサイト制作の仕様書の書き...
-
【JSP】input typeで入力された...
-
【C#】 FormClosingのイベント...
-
画面を隠す・消す方法を教えて...
-
FormのsubmitでFormの内容がnull
-
画面表示について
-
Beautiful Soupのインストール...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java-jspの画面入力値保持について
-
三菱GOTの画面切り替えについて
-
C言語で今まで表示していた画面...
-
ServletからServletへの値渡し
-
遷移元を判定したい!
-
C# ログイン画面からメイン画面...
-
ASP.NET 画面遷移前の状態を保...
-
Strutsの情報保持の仕方について
-
登録後、呼び出し元ページに戻...
-
ServletからHTMLページへの遷移...
-
JAVAのセッション変数の上書き...
-
system("cls")について
-
画像の縦横比固定の計算方法。
-
ブラウザアドレスバーからのURL...
-
画面を隠す・消す方法を教えて...
-
strutsで、JSP→アクションクラ...
-
セッション切れでのリクエスト...
-
MFCプログラミング
-
javaのstrutsを使った画面遷移...
-
FormのsubmitでFormの内容がnull
おすすめ情報