Thymeleaf表单与ArrayList对象一起提交 [英] Thymeleaf form submit with ArrayList Object

查看:1400
本文介绍了Thymeleaf表单与ArrayList对象一起提交的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经编写了一个简单的程序,用于使用数据(ArrayList)进行表单提交,以便将数据从表发送到控制器类.

I have written a simple program for form submit with the data(ArrayList) to send from table to controller class.

提交表单时,数据始终为空,不确定我在这里做错了什么.

While submitting the form the data is always empty not sure what I am doing wrong here.

我几乎要花很多时间来确定问题,否则就不行了:(

I am almost spending a lot of time to identify the issue no luck :(

控制器类(我在Post方法中总是得到null的地方)

Controller Class ( Where I always getting null in Post method )

public class AccountContoller {

private ArrayList<AccountwithSelection> allAccountwithSelect = new ArrayList<AccountwithSelection>();
public AccountContoller()
{
    //Written some test data in Array
    AccountwithSelection accountwithSelection1 =  new AccountwithSelection();
    accountwithSelection1.setAccountnumber("Acct1");
    accountwithSelection1.setIlc("ILC1");
    allAccountwithSelect.add(accountwithSelection1);
    AccountwithSelection accountwithSelection2 =  new AccountwithSelection();
    accountwithSelection2.setAccountnumber("Acct2");
    accountwithSelection1.setIlc("ILC2");
    allAccountwithSelect.add(accountwithSelection2);

}


@RequestMapping(value = "/accountload", method = RequestMethod.GET)
   String accountload(Model model) {
      AccountSelectionListWrapper wrapper = new AccountSelectionListWrapper();
      wrapper.setAccountList(allAccountwithSelect);
      model.addAttribute("accountload", wrapper);
      return "accountload";
   }

@RequestMapping(value = "/accountload", method = RequestMethod.POST)
public String addimeiPost(Model model,
        @ModelAttribute("accountload") AccountSelectionListWrapper wrapper,
        HttpServletRequest request) {
     System.out.println(wrapper.getAccountList()); //Always getting null, why ?
    return "accountload";

}

}

类别:AccountwithSelection

public class AccountwithSelection {
public String accountnumber, ilc;

public String getAccountnumber() {
    return accountnumber;
}

public void setAccountnumber(String accountnumber) {
    this.accountnumber = accountnumber;
}

public String getIlc() {
    return ilc;
}

public void setIlc(String ilc) {
    this.ilc = ilc;
}

}

WrapperClass- AccountSelectionListWrapper

public class AccountSelectionListWrapper {

public ArrayList<AccountwithSelection> accountList;

public ArrayList<AccountwithSelection> getAccountList() {
    return accountList;
}

public void setAccountList(ArrayList<AccountwithSelection> accountList) {
    this.accountList = accountList;
}

}

HTML表单:(accountload.html)

HTML Form:(accountload.html)

    <form action="#" th:action="accountload" th:object="${accountload}" method="post">
    <div class="row">
        <div class=form-group-1>
            <input type="submit" value="Send Data" name="action">
        </div>
    </div>
    <table id="mytable" class="table">
        <tbody class="table-tbody" style="width: 90%">
            <tr class="table-head">
                <th>ACCOUNT NUMBER</th>
            </tr>
            <tr class="table-row">
            <tr class="table-row" th:each="account, stat : *{accountList}">
                <td class="table-data" th:text="${account.getAccountnumber()}"
                    th:field="*{accountList[__${stat.index}__].accountnumber}"
                    th:value="${account.getAccountnumber()}"></td>
            </tr>
        </tbody>
    </table>
</form>

推荐答案

<td />元素未与表单一起提交.您需要使用某种输入.它应该看起来像这样:

<td /> elements aren't submitted with a form. You need to use some kind of input. It should look something like this:

<td class="table-data">
  <input type="text" th:field="*{accountList[__${stat.index}__].accountnumber}" />
</td>

或者如果您要提交而没有看到字段为可编辑状态,则类似

or if you want to submit without seeing the fields as editable, something like this

<td class="table-data">
  <span th:text="${account.accountnumber}" />
  <input type="hidden" th:field="*{accountList[__${stat.index}__].accountnumber}" />
</td>

这篇关于Thymeleaf表单与ArrayList对象一起提交的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆