我的首要问题是此错误消息:
访问/segment.htm时出现问题。 原因是:
Neither BindingResult nor plain target object for bean name
'acceptCorrected'可根据要求提供 属性
我正在处理的最高层描述是:
Form1请求用户提供一些输入。当form1提交时,我需要通过一些处理推送该数据,然后呈现包含处理结果的form2。我试图通过form1的控制器onSubmit返回的模型将form1的结果传递给form2。
有reason相信这是禁止的。
但是,如果是的话,在渲染form2的JSP页面时如何让数据from1可用?
<bean name="/segment.htm" class="com.basistech.rseharvest.SegmentFormController">
<property name="sessionForm" value="true"/>
<property name="commandName" value="segment"/>
<property name="commandClass" value="com.basistech.rseharvest.Segment"/>
<property name="validator">
<bean class="com.basistech.rseharvest.SegmentValidator"/>
</property>
<property name="formView" value="segment"/>
<property name="successView" value="showSegmented"/>
<property name="segmenter" ref="segmenter"/>
</bean>
<!-- the page to enter text -->
<bean name="/showSegmented.htm" class="com.basistech.rseharvest.AcceptCorrectedFormController">
<property name="sessionForm" value="true"/>
<property name="commandName" value="acceptCorrected"/>
<property name="commandClass" value="com.basistech.rseharvest.AcceptCorrected"/>
<property name="validator">
<bean class="com.basistech.rseharvest.CorrectionsValidator"/>
</property>
<property name="formView" value="showSegmented"/>
<property name="successView" value="segment"/>
<property name="data" ref="data"/>
</bean>
答案 0 :(得分:1)
第一个表单的onSubmit返回指向第二个表单的ModelAndView,方法是命名与第二个表单的formView相同的视图。
你能进一步解释这意味着什么吗? “细分”视图是否呈现包含<form>
POST到/showSegmented.htm
的HTML?
formBackingObject()
仅在对页面的初始GET
请求时调用。
您希望/segmented.htm
显示表单吗?/showSegmented.htm
来处理输入值?
如果是这样,这实际上不是AbstractFormController
的预期用途。此类适用于您希望相同的控制器处理的情况1)表单的表示和2)处理它的提交。
答案 1 :(得分:0)
在Spring 2.5.6中,有一个错误或一个奇怪的限制,如下所示。如果SimpleFormController指定另一个带有SimpleFormController的页面作为其successView,则第二个将在问题中失败。来自第一种形式的帖子数据似乎会干扰第二种形式上发生的事情。似乎假设提交表单后的下一个视图始终是非形式的。
如果第一页使用RedirectView切换到第二页,一切都很顺利。
有许多相互矛盾的建议,在某些情况下,来自Spring论坛上相互冲突的重量级人物,就此而言。我所知道的是,我通过切换到重定向使问题中的错误消失了。现在,浏览器为successView执行页面的简单GET,并且模型设置正确,一切正常。
请注意,RedirectView的参数是“外部”URL(在教程中,类似于blah.htm),而不是映射器映射到JSP页面的简单标记。