Eu tenho um CRUD e quero mudar o inputTexArea:
<p:inputTextarea id=“tags” value="#{myController.selected.tags}" />
Para o novo componente chips do Primefaces:
<p:chips id=“tags” value="#{myController.selected.tags}" />
Trecho da minha entity class:
@Lob
@Size(max = 2147483647)
@Column(name = “tags”)
private String tags;
//Getters e Setter omitidos
O método get funciona, pois as tags são exibidas dentro do inputText como esperado:
public List getTags() {
return Arrays.asList(tags.split(","));
}
Porém, o método set não está funcionando, quando eu clico em Salvar, é lançada a Exception:
public void setTags(List tags) {
this.tags = String.join(",", tags);
}
java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.CharSequence
at org.hibernate.validator.internal.constraintvalidators.SizeValidatorForCharSequence.isValid(SizeValidatorForCharSequence.java:33)
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateSingleConstraint(ConstraintTree.java:281)
Descobri que o p:chips
usa uma List
para armazenar os valores, daí usei get e set abaixo:
public List getTags() {
return Arrays.asList(tags.split(","));
}
public void setTags(List tags) {
this.tags = String.join(",", tags);
}
Mas daí é lançada outra Exception:
java.util.ArrayList cannot be cast to java.lang.CharSequence
Alguém pode me ajudar a resolver isso ?