0

我正在尝试在加载时触发支持 bean 中的方法。每当单击该链接时,它都会引发 NPE ,知道为什么吗?我在下面包含了我的代码片段。

   Error:    listener="#{userController.validate}": java.lang.NullPointerException: javax.el.ELException

 <h:form id="reg">
        <h:outputLabel value="Promo" /> :
        <h:inputText id="promocode" value="#{userController.promocode}">
            <f:ajax render=":promoimage" event="blur" listener="#{userController.validate}"/>
        </h:inputText>   
        <h:commandLink id="dummyclick" value="link">
            <f:ajax event="click" render=":promoimage" listener="#{userController.validate}"/>
        </h:commandLink>    
 </h:form>

@ManagedBean(name = "userController", eager= true)
@SessionScoped
public class UserController implements Serializable {
    public void validate(AjaxBehaviorEvent event){
        ........
        }
}

<script type="text/javascript">
    document.getElementById("reg:dummyclick").click();
</script>
4

2 回答 2

0

我删除了 ajax 调用并且它起作用了,在这种情况下它可能毫无意义。我仍然想知道为什么它会抛出 NPE。

<h:commandLink id="dummyclick" value="link" action="#{userController.showPromo}">
</h:commandLink>

…………

<script type="text/javascript">
    document.getElementById("reg:dummyclick").click();
</script>
于 2013-10-15T03:09:29.823 回答
0

为什么你使用命令链接,而不是使用命令按钮,如果你为 inputtext 设置 required="true",它会自动检查同一个按钮的验证。

于 2013-10-15T05:14:02.477 回答