我根据众多教程(我使用PrimeFaces)创建了自定义的JSF组件,我添加了一个参数,并成功地将其传递给组件。
<c:custom command="command"/>
public void setCommand(String command) {
log.debug("setCommand {}", command);
this.command = command;
}
但我需要自定义类型的参数,并且我在教程中找不到相关内容,这些教程只处理最简单的情况。
<c:custom image="#{currentImageBean.image}"/>
public void setImage(Object image) {
log.debug("setImage {}", image);
this.image = (Image) image;
}
Bean返回的是Image类型的对象,但setter没有被调用。我本来以为这应该可以工作,因为一个好的教程应该会提到这种情况,但现在我陷入了更糟的错误中:什么也没有发生,日志中也没有任何提示为什么...那么,出了什么问题,我需要做出什么改变,从哪里寻找潜在的错误呢?
getAttributes()
所回答的那样可用。但我强烈建议将getter/setter更改为这样,然后直接使用它们。这也是JSF实现和组件库构建其组件的方式。 - BalusC