为什么我在CommandLink上点击JSF获得NullpointerException

时间:2013-10-15 02:12:48

标签: jsf

我试图在加载时触发辅助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>

2 个答案:

答案 0 :(得分:0)

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

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

.......

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

答案 1 :(得分:0)

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