"/resources/components/hostForm.xhtml @25,84 value="#{cc.attrs.host.hostName}": Target Unreachable, 'host' returned null"
我添加后出现错误
<f:validateLength minimum="1" maximum="200"/>
到自定义标签中的 inputText 字段。没有验证一切正常。
<!-- INTERFACE -->
<composite:interface>
<composite:attribute name="host" />
<composite:attribute name="prefix" />
</composite:interface>
<!-- IMPLEMENTATION -->
<composite:implementation>
<h:panelGrid columns="3" columnClasses="titleCell">
<h:outputLabel for="#{cc.attrs.prefix}hostName" value="Host Name" />
<h:inputText id="#{cc.attrs.prefix}hostName" value="#{cc.attrs.host.hostName}">
<f:validateLength minimum="1" maximum="200"/>
<rich:validator />
</h:inputText>
<rich:message for="#{cc.attrs.prefix}hostName" />
</h:panelGrid>
</composite:implementation>
该字段声明为
@Named
@Produces
private Host newHost;
自定义标签调用:
<my:hostForm prefix="c" host="#{newHost}"/>
我需要更改什么才能通过验证来完成这项工作?
编辑:
Bean 已经有了@ConversationScoped
注解。向字段添加@ConversationScoped
注释会导致此错误:
hostForm.xhtml @20,74 value="#{cc.attrs.host.id}": org.jboss.weld.exceptions.IllegalProductException: WELD-000052 不能从非依赖生产者方法返回 null:[field] @命名为@ConversationScoped @Produces