gpt4 book ai didi

java - Primefaces 芯片 Web 组件

转载 作者:搜寻专家 更新时间:2023-10-31 19:52:58 26 4
gpt4 key购买 nike

我有一个 CRUD,我想更改 inputTexArea:

<p:inputTextarea id="tags" value="#{myController.selected.tags}" />

新的 Primefaces chips 组件:

<p:chips id="tags" value="#{myController.selected.tags}" />

实体类摘录:

@Lob
@Size(max = 2147483647)
@Column(name = "tags")
private String tags;
//GETTER AND SETTER OMITTED

get 方法工作正常,因为标签按预期显示在字段中:

public List<String> getTags() {
return Arrays.asList(tags.split(","));
}

但是set方法不是,因为当我点击保存时,发生异常:

public void setTags(List<String> 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)

有人可以帮帮我吗?

提前致谢。

ps.: 我已经向 Primefaces 团队 ( https://forum.primefaces.org/viewtopic.php?f=3&t=51091 ) 提出了这个问题,并且 Primefaces 核心开发人员 (Thomas Andraschko) 引导我去询问 Hibernate validator 团队。

最佳答案

Hibernate validator 似乎与您返回的 getter List<String> 混淆了对于 String field 。试试这个:

public String getTags() {
return tags;
}

public void setTags(String tags) {
this.tags = tags;
}

public List<String> getTagsList() {
return Arrays.asList(tags.split(","));
}

public void setTagsList(List<String> tags) {
this.tags = String.join(",", tags);
}

然后:

<p:chips id="tags" value="#{myController.selected.tagsList}" />

关于java - Primefaces 芯片 Web 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42962933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com