我正在嘗試構建一個javascript對象來提交表單。一個屬性必須是一個ID數組,如下所示:名稱中包含方括號的Javascript對象
var customPostData = {
lecturer:$("#modulesessform").serializeArray()[0].value,
topic:$("#topic").val(),
sessionType:$("#sessionType").val(),
sessionDate:$("#sessionDate").val(),
startTime:$("#startTime").val(),
endTime:$("#endTime").val(),
sessionStatus:$("#sessstatus").val(),
attendedstudents:studentsattended.toSource()
};
以下是在發佈數據中的樣子。
attendedstudents ["7348", "6472", "7392", "7235", "7399", "6943"]
endTime 8:30 PM
lecturer 5582
sessionDate Tuesday, October 02, 2012
sessionStatus Completed
sessionType 1
startTime 5:30 PM
topic bla
問題是最後一個字段。我想能夠說attendedstudents[]:studentsattended.toSource
。 您看到我使用的是Spring MVC,並且爲了告訴它該參數是某種類型的集合,我需要[ ]
作爲名稱 - 值對的一部分。這裏是一個小片段:
public @ResponseBody String ajaxcreate(@PathVariable("si") Long si,
@RequestParam("sessionDate") @org.springframework.format.annotation.DateTimeFormat(pattern = "EEEE, MMMM dd, yyyy") java.util.Calendar sessionDate,
@RequestParam("startTime") @org.springframework.format.annotation.DateTimeFormat(pattern = "hh:mm a") java.util.Calendar startTime,
@RequestParam("endTime") @org.springframework.format.annotation.DateTimeFormat(pattern = "hh:mm a") java.util.Calendar endTime,
@RequestParam("attendedstudents[]") ArrayList<Long> attendedstudents,
Model uiModel, HttpServletRequest httpServletRequest) {//bla bla bla}
見最後@RequestParam
。我在春天沒有方括號的時候試過,但是會引發錯誤。我也嘗試使用一個字符串數組,並將字符串解析爲一個long,參見下文。
@RequestParam("attendedstudents") String[] attendedstudents
這產生了這個例外。顯然,它試圖解析方括號作爲字符串的一部分。
對於輸入字符串: 「[」 7348 「」 java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) java.lang.Long.parseLong(Long.java:410) java.lang中.Long.valueOf(Long.java:525)**
這兩個答案是正確的,做工精細。謝謝阿薩德和sushanth,你們搖滾! – Binaryrespawn
@Binaryrespawn ..很高興有幫助:) –