预先填充的<form:input>字段(spring-form.tld标记库)</form:input>

时间:2013-12-18 21:33:24

标签: java jsp spring-mvc spring-form

我的jsp页面中有一个<form:form>,其中有几个<form:input>字段(因此,字段是数据绑定的)。其中一些字段由用户填充,但有些字段需要预先填充从另一个jsp页面通过spring控制器发送到此页面的参数值,而不是等待用户输入某个值。如何将该参数写入<form:input>,以便用户不必?

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,您希望使用之前已提交的值预填充某些字段。

您需要了解的是,使用Spring表单taglib,Spring希望您在模型中放置一个命令对象,并将该命令对象中的值绑定到表单字段。

如果未在模型中指定此命令对象的键,则taglib将使用键“command”查找它。您可以使用表单标记上的commandName属性指定其他名称,例如:

<form:form commandName="myModelObject">

Spring现在会在名为myModelObject的模型中查找用于绑定表单标记的对象。

您需要做的另一件事是在Spring表单中的表单标记中,引用命令对象中的字段。因此,举例来说,假设你的命令对象有一个字段firstName,你有一个像这样的输入标签:

<form:input path="firstName" />

path属性告诉属性它应该绑定的命令对象中的哪些字段。

然后,您只需将命令对象放在模型中,并使用预先填充的相应字段,并且相应的表单字段将预先填充这些值。例如,如果在模型中放置一个名为myModelObject且具有字段firstName的对象,则将使用当前在该对象中设置的firstName预先填充该对象。