我的出发问题是这样的错误消息:Spring MVC的一种形式供给数据为另一种形式
问题访问/segment.htm。 原因:
Neither BindingResult nor plain target object for bean name
“acceptCorrected”可以作为要求 属性
什么我工作的顶层描述是这样的:
Form1中征求用户的某些输入。当form1提交时,我需要通过一些处理来推送数据,然后呈现包含处理结果的form2。我试图通过form1的控制器的onSubmit返回的模型来将form1的结果传递给form2。
有reason认为这是禁忌。
但是,如果是这样,在为form2呈现JSP页面时,如何从1获得数据以供使用?
<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>
我想我正在试图做你告诉我的是正确的事情。 对于form1,我有一个JSP页面和一个控制器。 form1指定,作为其successView,form2。因此,一个控制器正在处理呈现form1并处理form1的提交。 我的问题是,我想使用form1的结果来帮助渲染form2。我认为这个模型将是正确的沟通途径,但没有这样的运气。 (请参阅http://forum.springsource.org/showthread.php?p=290500&mode=threaded#post290500)。 – bmargulies 2010-07-02 21:13:41
虽然我很困惑,因为您似乎在上面的代码示例中张贴了两个表单控制器。当使用AbstractFormController(及其子类)时,我相信预期的用法是表单呈现(GET)和处理提交(POST)都使用相同的控制器实例(和URL映射)。换句话说,您只需要一个控制器映射和一个URL。 –
2010-07-03 14:31:10
您是否看过“开发Spring Framework MVC应用程序的分步指南”教程?看起来不像它已经更新为3.0,但它是一个很好的起始资源http://static.springsource.org/docs/Spring-MVC-step-by-step/表单控制器上的部分可能会有所帮助http:// static.springsource.org/docs/Spring-MVC-step-by-step/part4.html#step4.6 – 2010-07-03 14:34:46