我使用以下代码导致自定义验证程序在某些按键按下时跳过验证:
<p:commandButton ... value="Don't Validate">
<f:param name="triggerValidation" value="false"/>
</p:commandButton>
哪个工作得很好。但是,在使用<p:fileDownload>
组件时,我似乎无法使用此功能:
<p:commandButton ... value="Don't Validate">
<p:fileDownload value="#{someWebBean.download()}">
<f:param name="triggerValidation" value="false"/>
</p:fileDownload>
</p:commandButton>
triggerValidation
参数在到达验证程序时为null
(无论<f:param>
元素是<p:commandButton>
还是<p:fileDownload>
的子元素} component)。
自定义验证器基类中的代码获取此参数:
Object o = ((HttpServletRequest) context.getExternalContext().getRequest()).getParameter("triggerValidation");
非常感谢任何有关为何发生这种情况的见解!
答案 0 :(得分:0)
即使p:commandButton
包含p:fileDownload
,该参数仍必须位于p:commandButton
上,而不是p:fileDownload
<p:commandButton ... value="Don't Validate">
<f:param name="triggerValidation" value="false"/>
<p:fileDownload value="#{someWebBean.download()}" />
</p:commandButton>