java - 如何在没有 xml 的情况下验证使用 @ManagedProperty 注入(inject)的 bean 属性?

标签 java validation jsf-2 annotations javabeans

我发现了很多讨论如何注入(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/

相关文章:

jsf - 如何控制 JSF 中的 http header ?

c# - 与 ValidatesOnException 绑定(bind)会在 .Net4 中引发未处理错误

JSF2 复合组件为 action 方法抛出 PropertyNotFoundException

java - Jasypt 使用 Bouncy CaSTLe 的 EncryptionOperationNotPossibleException

java - 测试 StringBuilder 和 StringBuffer 之间的区别

jquery - 验证与产品相关的每个下拉列表(选择列表)

java - Java 或 Apache Commons 中是否有可变参数空值检查功能?

jsf - 动态添加字段到 JSF 表单

java - 我正在制作一个壁纸应用程序。我被困在某个地方

java - 当 JMS 消息被使用时收到通知