2013-10-22 31 views
0

我想將這些隱藏輸入的值合併到單獨隱藏輸入中的json格式字符串中。我如何實現這一目標?將這些隱藏輸入的值合併爲單獨隱藏輸入中的json格式字符串

<c:forEach var="perForm" items="${importedPersonForms}" varStatus="count"> 
    <input type="hidden" name="importedPersonForms[${count.count - 1}].firstname" value="${perForm.firstname}"/> 
    <input type="hidden" name="importedPersonForms[${count.count - 1 }].lastname" value="${perForm.lastname}"/> 
    <c:forEach var="position" items="${perForm.positions}"> 
     <input type="hidden" name="importedPersonForms[${count.count - 1 }].positions" value="${position}"/> 
    </c:forEach> 
    <c:forEach var="organization" items="${perForm.organizations}"> 
     <input type="hidden" name="importedPersonForms[${count.count - 1 }].organizations" value="${organization}"/> 
    </c:forEach> 
    <input type="hidden" name="importedPersonForms[${count.count - 1 }].addressList[0].countryCode" value="${perForm.addressList[0].countryCode}"/> 
    <input type="hidden" name="importedPersonForms[${count.count - 1 }].addressList[0].number" value="${perForm.addressList[0].number}"/> 
    <input type="hidden" name="importedPersonForms[${count.count - 1 }].addressList[0].fixedLine" value="${perForm.addressList[0].fixedLine}"/> 
</c:forEach> 
+0

你在上面的代碼'input'標籤得到正確的名字? – S4beR

回答

0

我相信下面的代碼將解決您的問題。
變量json將是一個JSONArray,你可以作爲一個值添加到隱藏輸入

<c:set var="json" value="{["/> 
<c:forEach var="perForm" items="${importedPersonForms}" varStatus="count"> 

    <c:set var="json" value="${json}{${importedPersonForms[count.count - 1].firstname}:${perForm.firstname},"/> 
    <c:set var="json" value="${json}${importedPersonForms[count.count - 1].lastname}:${perForm.lastname},"/>  

    <input type="hidden" name="${importedPersonForms[count.count - 1].firstname}" value="${perForm.firstname}"/> 
    <input type="hidden" name="${importedPersonForms[count.count - 1].lastname}" value="${perForm.lastname}"/> 

    <c:forEach var="position" items="${perForm.positions}"> 
     <c:set var="json" value="${json}${importedPersonForms[count.count - 1].positions}:${position},"/> 
     <input type="hidden" name="${importedPersonForms[count.count - 1].positions}" value="${position}"/> 
    </c:forEach> 
    <c:forEach var="organization" items="${perForm.organizations}"> 
     <c:set var="json" value="${json}${importedPersonForms[count.count - 1].organizations}:${organizations},"/> 
     <input type="hidden" name="${importedPersonForms[count.count - 1].organizations}" value="${organization}"/> 
    </c:forEach> 

    <c:set var="json" value="${json}addressList: [{"/> 
    <c:set var="json" value="${json}${importedPersonForms[count.count - 1].addressList[0].countryCode}:${perForm.addressList[0].countryCode},"/> 
    <c:set var="json" value="${json}${importedPersonForms[count.count - 1].addressList[0].number}:${perForm.addressList[0].number},"/> 
    <c:set var="json" value="${json}${importedPersonForms[count.count - 1].addressList[0].fixedLine}:${perForm.addressList[0].fixedLine}"/> 
    <c:set var="json" value="${json}}]"/> 

    <%-- if current index is not last then append a comma --%> 
    <c:if test="${count.index - 1 == fn:length(importedPersonForms)}"> 
     <c:set var="json" value="${json}},"/> 
    </c:if> 

    <input type="hidden" name="${importedPersonForms[count.count - 1].addressList[0].countryCode}" value="${perForm.addressList[0].countryCode}"/> 
    <input type="hidden" name="${importedPersonForms[count.count - 1].addressList[0].number}" value="${perForm.addressList[0].number}"/> 
    <input type="hidden" name="${importedPersonForms[count.count - 1].addressList[0].fixedLine}" value="${perForm.addressList[0].fixedLine}"/> 
</c:forEach> 
<c:set var="json" value="${json}]}"/> 
<input type="input" name="inputJson" value="${json}"/>