2012-12-12 100 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"/>

這些工作對我來說。