- - PR -
Validaterを使うと、初期表示でエラーが表示される
1|2|3
次のページへ»
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-09-22 01:28
こんにちは。
現在あるユーザ登録画面を作成しているのですが、最初にその画面を表示した段階で、エラーメッセージが出てしまいます。 そのエラーメッセージは <html:errors />によって出ている物ですが、入力前は何も出て欲しくないのです。 [Bean] public class RegistUser extends ValidatorForm {} [validation.xml] <form name="RegistUser"> <field property="id" depends="required,mask"> <arg0 key="words.id" /> <var> <var-name>mask</var-name> <var-value>^[a-zA-Z][0-9a-zA-Z]*$</var-value> </var> </field> </form> メッセージリソース等は正常に読み込めていまして、JavaスクリプトONの状態ではダイアログボックスと正常なエラーメッセージが表示されます。件のエラー以外は正常に画面も遷移します。 どなたかお分かりになる方おられませんでしょうか。。。 | ||||||||
|
投稿日時: 2003-09-22 11:15
特に何も書いていらっしゃらないので推測でしかないのですが、これはStrutsを使われているのですよね?
その前提で書かせていただきますので、外していたらごめんなさい。 struts-config.xmlでどのように記述されているかわかりませんが、RegistUserフォームを使用するアクションをいきなり呼び出されているからではないでしょうか。 まずは、登録画面のjspを呼び出すようにして、その登録画面から次画面へ遷移するタイミングでRegistUserのチェックが行われるように設定すれば、エラーメッセージは出なくなると思います。 | ||||||||
|
投稿日時: 2003-09-22 11:28
すみません。完全に書くのを忘れてました。Strutsを使ってやっています。
おっしゃりますように、現在直接 /xxxxx/RegistUser.do を呼んでいます。 下のは、これも忘れていました、struts-config.xml の該当部分です。 jspを直接呼ぶように変えてみます。 <action attribute="RegistUser" input="/WEB-INF/pages/system/registUser.jsp" name="RegistUser" path="/RegistUser" scope="request" type="xxxxx.xxxxx.contents.sys.RegistUserAction"> <forward name="success" path="/WEB-INF/pages/other/finish.jsp" /> </action> (jspをWEB-INF以下に置いていたのですが、一般的にどこに置くものなんでしょうか。 直接呼ぶ必要がないならWEB-INF以下が良いだろうと思っていたので。今回の場合は上へ上げる必要がありますが。) ありがとうございました。 [ メッセージ編集済み 編集者: IWA 編集日時 2003-09-23 15:31 ] | ||||||||
|
投稿日時: 2003-09-22 11:36
え? JSPはHTMLと同じなので、WEB-INF以下に置くことはありえませんよ。 だいたいそんなとこに置いて、どうやってJSPを呼ぶのでしょうか? [ メッセージ編集済み 編集者: taku 編集日時 2003-09-22 11:37 ] [ メッセージ編集済み 編集者: taku 編集日時 2003-09-22 11:38 ] | ||||||||
|
投稿日時: 2003-09-22 11:47
struts-config.xmlに以下のように書いて、すべてXxxx.do
<forward name="success" path="/WEB-INF/pages/other/finish.jsp" /> から見ていました。データ入力する画面は、これが始めてでしたので、これで事足りていたというわけでした・・・。 poohさん、 ご指摘通り、struts-config.xml を変えて、jspの配置を変えて、直接jspを読み込むと全てうまくいきました! ありがとうございました。 [ メッセージ編集済み 編集者: IWA 編集日時 2003-09-22 11:49 ] | ||||||||
|
投稿日時: 2003-09-22 15:59
WEB-INF以下にJSPを置くとアドレス直打ちでJSPを開けなくなります。 というわけで私はアドレス直打ちによるJSPへの不正遷移を防ぐ目的で、 welcome file以外は全てWEB-INF/jspの中に置くようにしてます。 | ||||||||
|
投稿日時: 2003-09-22 16:23
実際に試して見ましたが、 確かにクライアントからは見えないみたいですね。 これってクライアントから一切見えないのですよね? もしそうならJSPにする意味が一切ないんじゃ・・・。 | ||||||||
|
投稿日時: 2003-09-22 18:23
WEB-INF以下にJSPを置くとアドレス直打ちでは開けませんが、 servletなどからforwardすれば開くことができます。 strutsならば <forward name="success" path="/WEB-INF/index.jsp" /> としてsuccessにforwardしてやればOKです。 目的としては入力.jsp>確認.jsp>完了.jspとして遷移するはずが いきなり完了.jspを開かれて不正な実行処理を起動されたり、 NullPointerExceptionのスタックトレースが画面に表示されたりといった システムで予期されていない画面遷移を抑止すると言うことを期待しています=D [ メッセージ編集済み 編集者: moke 編集日時 2003-09-22 18:25 ] | ||||||||
1|2|3
次のページへ»
