我发现了很多讨论如何注入(inject)属性的主题,但没有一个主题建议验证方法。 这是我的 bean :
@ManagedBean
@RequestScoped
public class MyBean {
@ManagedProperty(value = "#{param.key}")
private String keyFromUser;
}
目前,如果 GET 参数中缺少 param.key,我有
com.sun.faces.mgbean.ManagedBeanCreationException: An error occurred performing resource injection on managed bean myBean
最佳答案
使用<f:viewParam>
反而。就像<h:inputText>
,然后是 GET 请求参数。因此,它允许通过 validator
注册 validator 属性或什至 <f:validator>
和<f:validateXxx>
标签。您甚至可以附上<h:message>
到它。
<f:metadata>
<f:viewParam id="key" name="key" value="#{myBean.keyFromUser}" validator="myValidator" />
</f:metadata>
<h:message for="key" />
您只需移动 @PostConstruct
工作到<f:event type="preRenderView">
.
另请参阅:
关于java - 如何在没有 xml 的情况下验证使用 @ManagedProperty 注入(inject)的 bean 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12771453/