Fala galera tudo bem ? Mais uma vez vou recorre a vocês aqui hehe
Bom vamos lá, vou tentar ser o mais claro possível:
Tenho um bean que representam as roles de um usuário
@Entity
public class Role implements GrantedAuthority{
private static final long serialVersionUID = 1L;
@Id
private String nome;
public Role(){
}
public Role(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Override
public String getAuthority() {
return this.nome;
}
@Override
public String toString() {
return nome;
}
}
Preciso exibir um form com checkboxes que representam essas roles, então fiz um método do meu controller:
@RequestMapping(method = RequestMethod.GET, path="/roles")
public ModelAndView formRoles(@RequestParam("email") String email) {
Usuario usuario = usuarioDao.loadUserByUsername(email);
List<Role> roles = roleDao.listar();
ModelAndView modelAndView = new ModelAndView("/roles/form");
modelAndView.addObject("usuario", usuario);
modelAndView.addObject("roles", roles);
return modelAndView;
}
Por fim fiz o seguinte no meu jsp:
<form:form action="${s:mvcUrl('UC#atualizarRoles').build() }" method="post" commandName="roles" enctype="multipart/form-data">
<div>
<label for="roles">Permissões</label>
<c:forEach items="${roles}" var="roles">
<p>${roles }</p>
<form:checkboxes items="${roles }" path="${roles }"/>
</c:forEach>
</div>
</form:form>
A ideia era que o foreach deveria receber a lista de roles e exibir um checkbox para cada role... Mas ao invés disso estou obtendo o seguinte erro:
org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: org.springframework.beans.NotReadablePropertyException: Invalid property 'ROLE_ADMIN' of bean class [java.util.ArrayList]: Bean property 'ROLE_ADMIN' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?
Ok, eu entendi que ele está tentando extrair a propriedade ROLE_ADMIN da classe ArrayList... Mas não entendi por que, uma vez que meu ArrayList é um ArrayList de role...
Alguém poderia me ajudar por favor, não só a corrigir mas a entender o por que desse erro..
Grato desde já !!!