我试图在加载时触发辅助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>
答案 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”,它将自动检查同一按钮上的验证。