0

我有一个简单的基于 MVC 的 JSP 应用程序。就像是:

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

应用程序中的典型链接如下所示:

myapp/controller?cmd=ShowEditUser&userid=55

这会导致ShowEditUserCommand.javaexecute() 方法运行并将转发到editUser.jsp

editUser.jsp中,他们填写字段,然后单击Save哪些帖子myapp/controller?cmd=ModifyUser运行ModifyUserCommand.javaexecute() 方法,该方法修改用户数据并转发到viewUser.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 回答