我正在使用Spring的SimpleFormController进行表单处理。就我而言,编辑视图(JSP)可以根据所编辑的内容而有所不同。 SimpleFormControllerformView是一个字段(类变量),这意味着它由使用该实例的所有线程共享。因此,在setFormView中设置formView(通过formBackingObject)是不安全的(也不适当)。我的问题是,是否可以根据上下文在不同的编辑视图中使用SimpleFormController

后续:查看源代码后,似乎可以覆盖showForm(HttpServletRequest req, HttpServletResponse resp, BindException errors)并使用所需的任何视图调用showForm(HttpServletRequest req, BindException errors, String viewName)

最佳答案

我相信SimpleFormController提供了两个“ showForm”受保护的方法。可以重写这些内容,并使用BindException检索作为表单对象的“目标”,然后可以基于任何绑定的表单对象属性返回ModelAndView。您还应该看看processFormSubmission,它指示哪些方法真正被调用。另一个方法是“ isFormChangeRequest”,它确定您的表单是否应该更改-您可以使用此方法将其设置为true,然后它将使用请求,响应等调用showForm,然后可以重新检查请求。

您将学习如何使用此层次结构,这是唯一的方法。它不是很好-它提供了很多东西,但不是很好。通常,必须扩展Spring MVC才能使其非常有用。

09-10 21:17