アプリ版:「スタンプのみでお礼する」機能のリリースについて

JSP/サーブレットで一般的な入力チェックの仕組みについて

いつもお世話になります。

JSP/サーブレットでWebシステムを作っています。
特別なフレームワークは使っておらず、素のJavaだけで作っているのですが、JSP/サーブレットでWebシステムを開発する場合で、入力チェックでエラーがあった場合、
下記のような動作を実現したいのですが、一般的にはどのような作りになるのでしょうか。

・画面の入力内容はそのまま
・メッセージ領域にエラーメッセージを表示
・エラーがあった項目を赤くする

これらはJavaScriptでしか実現する方法は無いように思っていますが、できればJavaScriptは
使用しない方向で、最悪3番目はできなくてもよいです。

宜しくお願い致します。

A 回答 (3件)

JSPを使っているならできると思うけど。



・画面の入力内容はそのまま
・メッセージ領域にエラーメッセージを表示
・エラーがあった項目を赤くする

どれもHTMLの加工の問題でしょう?

Servletがリクエストを受け取る
→入力チェック
→エラーがあったら前の画面のJSPを表示する
→JSP表示の際に、入力された内容をHTMLにセットする
→メッセージ領域にえらーメッセージを表示する
→ついでにエラー項目も赤くする

全部JSPでできる内容よね。


一般的なつくりとしては
まず、その画面の入力項目に対応したBeanを用意する。
Servletがリクエストを受け取り、リクスエトを解析しBeanに格納する。
Beanをその画面用のチェッククラスで入力チェックする。
エラーがなければ次画面を、エラーがあれば呼び出し元画面のJSPを要求。
エラーがあった場合、エラーメッセージをセッションなりリクエストなりに格納。
JSP表示時にBeanに格納されている内容を出力。
エラーメッセージが格納されていればそれを出力。
こんな感じね。

赤くするのはBeanについでにフラグを持たせておけば
JSPで判断できるんじゃない?
    • good
    • 1

>このようなことをなくしたく、エラーメッセージのみ表示させ、もともと入力していた内容や、表示されていた内容はそのままにしたいのです。



それでしたら、定石通りJavaScriptを使うべきかと存じます。
なぜ使ってはいけないのですか?
    • good
    • 0
この回答へのお礼

>なぜ使ってはいけないのですか?

個人的に使いたくないな、と思っているだけです。
JavaScriptが定石になってしまうのですね。ありがとうございます。

ちなみにJavaScriptだとAjaxになってしまうのでしょうか。
他にはちょっと思いつかないのですが。。。

お礼日時:2010/05/09 13:05

「画面の入力内容はそのまま」の解釈によるのですが、ページ切り替えが起きても前のページと同じものが表示されていればよいのでしたら、サーブレット側で入力チェックを行えばできます。


その際、フォーム内データなど、可変変数についてはいったんサーブレット側で引き取り、再度JSPで表示してやる必要があります。ただ、この処理は無駄なトラフィックが発生するので、JavaScriptを使う方が付加が少ないと言えます。
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。

サーブレット側で入力チェックをするやり方をとっては見たのですが、エラーメッセージ等の結果を表示
するためのよい方法は思いつかず質問した次第です。

今行っている実装としては、サーブレット側で入力チェックを行い、エラーがあった場合、Exceptionを
スローし、JSPへフォワードさせるやり方をしています。
この場合、「画面の入力内容はそのまま」ということで質問しておりますが、
エラーメッセージを表示するに当たり、JSPを再表示させると、当然結果も再取得することになります。
このようなことをなくしたく、エラーメッセージのみ表示させ、もともと入力していた内容や、表示されていた内容はそのままにしたいのです。

宜しくお願いします。

お礼日時:2010/05/09 11:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています