1

コントローラーのリスト サイズが 0 になっています。JS ファイルは単にフォームを送信しています。jsp ファイルは、ページの読み込み時にデータが入力される hashMap のリストを反復処理しています。3 つ目は、送信ボタンがクリックされた後にリストを受け取るコントローラーです。 jspページで。

JS file:

function getFormDetails(){
 document.forms[0].action=requestPath+"/admin/updateInterfaceParams.do";
 document.forms[0].submit();
}

JSP file:
<form:form method="post" cssStyle="float:left;">
<c:forEach var="list" items="${manageInterfaceList }" varStatus="stat">
   <c:forEach var="entry" items="${list}">
    <c:if test="${entry.key eq 'A'}">
    <input type="hidden" name="interfaceList[${stat.index}].key"
                        value="${entry.key}" />
    <span>Key:</span>
    <input type="text" id="keyAjax" name="interfaceList[${stat.index}].value" 
      value="${entry.value}"/>
    </c:if>
    <br />
    <c:if test="${entry.key eq 'B'}">
    <input type="hidden" name="interfaceList[${stat.index}].key"
      value="${entry.key}" />
    <span>Password:</span>
    <input type="text" id="password"
    name="interfaceList[${stat.index}].value" value="${entry.value }"/>
    <br />
    </c:if>
    </c:forEach>
    </c:forEach> 
    <span><input type="button"
            name="Submit" value="Submit" onclick="getFormDetails();"/></span>
    </form:form>
    Controller:

@RequestMapping(value = "/updateInterfaceParams.do")
            public ModelAndView updateInterfaceParams(HttpServletRequest request,
@ModelAttribute ArrayList<HashMap<String,String>> manageInterfaceList) {

                ModelMap modelMap = new ModelMap();
                try {
                    System.out.println(manageInterfaceList.size());
                } catch (Exception e) {

                    modelMap.addAttribute("errorMessage",e.getMessage());
                } 
                return new ModelAndView("manageinterface", modelMap);
            }

リストのサイズが 0 になる理由と、コントローラーでリスト要素を取得する方法に関する提案。

4

1 に答える 1

0

フォームはフォーム バッキング オブジェクトに関連付けられていないためcommandName、フォーム要素の属性を指定する必要があります。これは、リストを含む pojo になります。

于 2013-06-19T16:13:39.393 に答える