
strutsのvalidatorを使用するため
「struts-config」のactionタグに以下の修正を入れると思います。
・validate = true
・input = "エラー時に遷移するページ"
上記の修正後、実行すると
画面の初期表示時に、どうやらinputで指定した画面に遷移してしまいます。
エラー時に遷移するための指定かと思ったのですが
画面初期表示時にも読み込まれるのでしょうか?
画面表示で分割して表示している所為でしょうか?
・validatorでのエラーはポップアップで表示したいと思っています。
・該当する1画面表示に対しての配置は以下になります。
(1)Menue.html
-(2)Top.jsp※共通なヘッダ部分
-(3)Main.html
-(4)Init.jsp※検索結果表示部分
-(5)Search.html
-(6)Search_Up.html※上部の表示部分
-(7)Sarch_In.jsp※検索条件入力部分
※初期表示は(1)の画面で、validatorを使用するのは(7)の画面です。
(7)の画面には以下を追加しました。
追加⇒<html:javascript formName="対象Form名"/>
<html:form action="actionのpath名.do?
action=search" method="post" target="view"
追加⇒onsubmit="return validate対象Form名(this)">
1つの画面に対して細かく資産を分けてしまうと
validatorを利用する際にうまく画面遷移が出来ないのでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
> <html:link page="/search.do&action=init" ・・・・>
このURLの指定方法はどこから得た知識でしょうか?
一般的なStrutsの使い方をしていないような気がします。
特に、"&"は何を表しているのでしょうか。
現在の記述を見ると、バリデーション機能を利用しようとしていますが、
バリデーション機能を除いて正しくStrutsは利用できているのでしょうか。
もしStrutsを正しく利用できていないのであれば、
単なる1遷移を実装するなどして正しい利用方法を理解した上で、
バリデーションの機能を利用するなどしたほうが良いかもしれません。
この回答への補足
&はリクエストとして渡している値です。
既に完成されているプロジェクトに対し
今回リファクタリングを行なうのですが
独自に作りこまれている為、strutsの使い方としては
生かしきれてない作りになっています。
今回の件については解決いたしました。
⇒バリデーション機能について、呼ばれるタイミングが
画面に追加したonsubmitのタイミングだと思い込んでいました。
しかし、バリデーション機能を設定したActionが起動されたときに
実行されるので、今回は画面開設時の初期処理の前で呼ばれ
エラーを返却しているため、本来の画面が開設される前にエラー画面に
遷移していました。
1画面につき1Actionのつくりをしているため
問題を解決するにはstruts-configでActionを別名定義し
バリデーションを起動したくない処理はvalidate=falseと
設定すれば実現可能かと思います。
しかし、検討の結果とスケジュールの都合上
今回バリデーションを利用することはあきらめました・・・
今後もリファクタリングを行う予定なので
その時に再検討したいと思っています。
No.1
- 回答日時:
まず何よりも先にstruts-config.xmlの内容を提示してください。
質問内容から、少なくとも初期表示Actionと検索ボタン押下Actionの記述は必要かと。
この回答への補足
失礼しました。
struts-configのaction定義は以下になります。
初期表示と検索部分をコメントしています。
他も色々と細かい遷移先がありますが
正常ルートではない遷移なのでここでは説明を割愛させていただきます。
<action path="/search"
type="com.aa.AA.searchAction"
name="searchForm"
validate="true"
input="/JSP/AA/Search_In.jsp">
<!--初期表示--><forward name="init" path="JSP/AA/Menu.html"/>
<forward name="over_init" path="JSP/AA/Init.jsp"/>
<!--検索--><forward name="search" path="JSP/AA/Search_Res.jsp"/>
<forward name="refresh" path="JSP/AA/Search_Res.jsp"/>
<forward name="search_over" path="JSP/AA/Search_Res.jsp"/>
<forward name="search_over_refresh" path="JSP/AA/Search_Res.jsp"/>
<!-- 以下、異状系のエラー -->
<forward name="error_search" path="JSP/CW/Error.jsp"/>
<forward name="error_refresh" path="JSP/CW/Error.jsp"/>
<forward name="error_download" path="JSP/CW/Error.jsp"/>
</action>
ひとつ画面を記述し忘れていました。
(8)検索結果表示※Search_Res.jsp
(4)の画面は初期表示時のみになります。
メニュー画面(他の画面)からこの画面のActionのinitが呼ばれるはずなのですが
<html:link page="/search.do&action=init" ・・・・>
initのログは出力されていませんでした・・・
initが呼ばれずにいきなりinputで指定した画面が表示されているっぽいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
ASP.NET 画面遷移前の状態を保...
-
ServletからServletへの値渡し
-
ページ遷移せずにjava部品を実...
-
親ウィンドウの画面遷移
-
登録後、呼び出し元ページに戻...
-
C# ログイン画面からメイン画面...
-
location.hrefでページ切替時の...
-
入力フォーム(JSP)にDB検索条...
-
Javaプログラミングの質問にな...
-
スマホ向けに「お気に入り登録...
-
親子画面での値の受け渡し方法
-
JSPにてDB登録処理
-
画面を隠す・消す方法を教えて...
-
CSVダウンロードでウィンド...
-
VC++にて、コンソールを二画面表示
-
Strutsで画面遷移させない。
-
Java-jspの画面入力値保持について
-
ボタンが活性化の場合とは、ボ...
-
フォーム上で押されたボタンに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
Java-jspの画面入力値保持について
-
C言語で今まで表示していた画面...
-
画面遷移を行わずに同一ページ...
-
ASP.NET 画面遷移前の状態を保...
-
MFCプログラミング
-
ボタンを押したあとに画像を表...
-
アドレスバーに引数を表示させ...
-
遷移元を判定したい!
-
C# ログイン画面からメイン画面...
-
Strutsのデータ受け渡しについて
-
ServletからServletへの値渡し
-
登録後、呼び出し元ページに戻...
-
検索画面→結果画面→検索画面と...
-
Strutsで画面遷移させない。
-
JSPから出力されたHTML画面のcl...
-
Beautiful Soupのインストール...
-
JAVAのセッション変数の上書き...
-
strutsで、JSP→アクションクラ...
-
ブラウザアドレスバーからのURL...
おすすめ情報