Sono nuovo alla primavera. Visualizzo un elenco con gli utenti. Ogni riga ha una casella di controllo per rimuovere gli utenti.Spring MVC passando ArrayList indietro al controller
Controller:
@Controller
public class AdminController {
@Autowired
private UserDao userDao;
@RequestMapping(value = "/admin", method = RequestMethod.GET)
public ModelAndView adminPage() {
ModelAndView model = new ModelAndView();
model.addObject("users", userDao.findAll());
model.setViewName("admin");
return model;
}
@RequestMapping(value = "admin/remove", method = RequestMethod.POST)
public ModelAndView removeUser(@ModelAttribute(value = "users") ArrayList<User> users) {
ModelAndView model = new ModelAndView();
//UPDATE USERS HERE
model.setViewName("redirect:/admin");
return model;
}
JSP:
<form:form action="/admin/remove" method="POST" modelAttribute="users">
<table class="table table-striped">
<thead>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Email/login</th>
<th>Profession</th>
<th>Select<th>
</tr>
</thead>
<tbody>
<c:forEach var="user" items="${users}">
<tr>
<td>${user.firstName}</td>
<td>${user.lastName}</td>
<td>${user.login}</td>
<td>${user.profession}</td>
<td><input type="checkbox" value="${user.delete}"/></td>
</tr>
</c:forEach>
</tbody>
</table>
<input type="submit" value="Delete user(s)" class="btn-danger" />
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
</form:form>
L'elenco è reso correttamente. Se premo il pulsante "Elimina utente/i". Gli utenti di @modelAttribute sono vuoti. Ho anche provato a completare l'elenco in una nuova classe, ma ottengo gli stessi risultati.
Qualche idea?
Sono i dati prima del reindirizzamento vuoto. vedi "// AGGIORNA UTENTI QUI" nel controller. – user1449511
Questa non è una risposta valida per la domanda. Dai un'occhiata alla mia risposta come perché è vuota. – minion
Il mio male. Ho interpretato erroneamente il tuo problema, mi spiace :( –