0

シンプルな MVC ベースの JSP アプリケーションがあります。何かのようなもの:

*.jsp -> ControllerServlet -> *Command.java -> *Service.java -> *DAO.java -> Oracle db

アプリケーションの典型的なリンクは次のようになります。

myapp/controller?cmd=ShowEditUser&userid=55

これにより、ShowEditUserCommand.javaexecute() メソッドが実行され、転送されますeditUser.jsp

では、フィールドに入力し、ユーザー データを変更して に転送する execute() メソッドを実行する投稿をeditUser.jspクリックします。Savemyapp/controller?cmd=ModifyUserModifyUserCommand.javaviewUser.jsp

すべて正常に動作します。

問題は、ModifyUserCommand.execute()ユーザー名が一意かどうかを確認していることです。ユーザーが既に存在するユーザー名を入力しようとすると、エラー値を に設定しtrue、errorMessage 値をに設定しますAlready in use

次に、エラーのため、元のeditUser.jsp(viewUser.jsp ではない) に転送すると、フォームの上にエラーが表示されます。

私の問題は (ついに! ;) --editUser.jspエラー メッセージが表示された状態でユーザーに戻ると、フィールドに入力したデータはすべて空白になります。フィールドに入力した内容がそのまま残るように設定するにはどうすればよいですか?

提案やアドバイスは大歓迎です!

ロブ

4

1 に答える 1

0

最も簡単な方法は、ModifyUserCommand.execute() の転送アクションで、フォーム フィールドを editUser.jsp に戻すことです。個々のパラメーターでそれを行うことができます。

editUser.jsp?field1=1&field2=2 

または、他の方法でデータを渡すこともできます。つまり、エンコードされた JSON です。

次に、ページのリクエスト オブジェクトを介して editUser.jsp のフィールドを処理し、それに応じてフォーム フィールドの値を設定できます。

使用している基礎となるフレームワーク (存在する場合) によっては、これを行う他の方法があるかもしれません。しかし、これはそれにアプローチするための基本的な方法です。

于 2012-11-29T20:51:29.013 に答える