1

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 :(

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";

}

}

Class: 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 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>

1 Answer 1

2

<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>
Sign up to request clarification or add additional context in comments.

1 Comment

could you please have a look at this thread with similar question stackoverflow.com/questions/73582080/…

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.