2012-12-12 67 views
5

我正在使用JSP春季输入路径春季输入路径列表

例如:

<div class="cell label"> 
    <form:label path="order.paymentTransactions.payerEmail">Payer Mail</form:label> 
</div> 
<div class="cell"> 
    <form:input path="order.paymentTransactions.payerEmail" name="payerEmail"/> 
</div> 

这里,为了是我的主要目标和内部秩序,paymentTransaction是一个名单,我必须输入数据通过payerEmail检查dao。

但它显示错误给我和无效的路径。请给我一个定义jsp输入路径的好方法。谢谢

+0

你应该在你的问题中包含确切的错误。让人们更容易帮助你。 – Henrik

+0

order.paymentTransactions.payerEmail无效路径 – user1894465

+0

订单是我的dataObject,里面的订单我有List ,payerEmail是一个在paymentTransaction中声明的变量。我需要将输入数据传递给payerEmail。请帮助我如何定义路径。谢谢 – user1894465

回答

11

在Spring中映射bean的列表时,很难提供路径属性。您可以用纯html <input>替换<form:input>

<input name="order.paymentTransactions[0].payerEmail" /> 

这里有一个完整的例子在Spring MVC的地图列表,表单对象

例子:Spring MVC: Multiple Row Form Submit using List of Beans

上面的例子还讨论了为什么它是很难用<form:input>使用列表工作时。它的,因为如果你尝试使用类似如下:

<form:input path="order.paymentTransactions[0].payerEmail" name="payerEmail"/> 

Spring将简单呈现此为HTML:

<input name="order.paymentTransactions0.payerEmail" /> 

忽略括号[]。

因此它不可能使用<form:input>作为映射列表。

+0

谢谢..我得到了答案,因为我显示所有信息列表,为我的情况:$ {orderList.order.paymentTransactions [0] .payerEmail}它工作正常。 – user1894465

+0

@HungTran你使用哪个版本的Spring? –

+0

@Viral Patel:我用Spring 3.1.0.Release。 Spring只剥离了id属性的bracked,并且仍然保留了name属性的括号。

0

我们可以通过弹簧做列表映射。请在您的网站上更新。谢谢。

例子:

<c:forEach var="marksList" items="${personDTO.marksList}" varStatus="status"> 

<form:input path="marksList[${status.index}].hindi" /> 
+0

我很高兴我尝试了这个答案,即使它有负面投票。是的,这个答案适合我。在这里你去投票! – tkr

0

你可以做这些:

<c:set var="list" value="order.paymentTransactions[0].payerEmail" scope="page" /> 
 

 
<form:input path="${list}" name="payerEmail"/>

这些工作对我来说。