0

In my thymeleaf template I add a hidden field for a field on my form object:

<form action="#" th:action="@{/admin/endpoint}" th:object="${monkey}" method="post" class="form-horizontal" role="form">
    <input type="hidden" th:field="*{id}" />
    <input type="hidden" th:field="*{banana}" />
...
</form>

Created html output:

<input type="hidden" id="id" name="id" value="55">
<input type="hidden" id="banana" name="banana" value="3">

Posting this form through a web browser works as expected, but when I try to test this with MockMvc only the id field gets set:

mvc.perform(post("/endpoint")
                .param("id", String.valueOf(monkey.getId()))
                .param("banana", String.valueOf(monkey.getBanana().getId())))

In my controller I let Spring transform the form for me:

@RequestMapping(value = { "/admin/endpoint" }, method = RequestMethod.POST)
    public String updateMonkey(Model model, @Valid Monkey monkey, BindingResult br) {
    System.out.println(monkey.getId()) // -> 55
    System.out.println(monkey.getBanana()) // -> null
...
}

What do I have to change so the field "banana" gets properly initialized from the id in my test?

fap
  • 663
  • 1
  • 5
  • 14

0 Answers0