如何在验证表单值后设置 p:commandLink 标签 "target" 值?
How to set p:commandLink tag "target" value after validating form value?
在我的项目中,我有一个命令 link,其中 "target" 属性值设置为“_blank”。因此,如果出现验证错误,它将打开一个新的 window 并显示错误消息。
但要求是如果验证正确它应该定位到新的 window 否则它将保留在同一页面并显示错误消息。
现有代码:
<p:commandLink value="View"
styleClass="view_link"
ajax="false"
action="#{bean.someMethod('preview')}"
target ="_blank" />
我的解决方案:
<p:commandLink value="View"
styleClass="view_link"
ajax="false"
action="#{bean.someMethod('preview')}"
target="#{bean.target}">
<p:ajax listener="#{bean.handelAjaxBehavoiurEvent}"/>
</p:commandLink>
在 listner 方法中,我正在验证表单并为 p:commandlink 设置目标值。但它不起作用。
预期结果:当我单击 link 时,它应该验证表单值。如果值正确,则在浏览器中打开一个新选项卡并预览 pdf 文件。否则在现有页面上显示错误消息。
这就是为什么在检查 link 本身时它会打开新的。我想在表单验证后设置目标属性的值。
这就是我是如何做这些事情的:
我有一个 xhtml 页面可以查看 任何 PDF(即 mypdfviewer.xhtml)。
该 bean 设置了一些 return 参数,例如 validationOk、pdfname、viewoptions 等,并通过 addCallbackParam()
设置了这些参数 return。在 oncomplete
中,我查找这些值,如果可以,则打开新选项卡。
对话:
<p:commandLink ajax="true" value="View" action="#{bean.someMethod('preview')}" oncomplete="return myPdfView(args)"/>
豆子:
public void someMethod(String what) {
...
RequestContext.getCurrentInstance().addCallbackParam("validationOk", true);
RequestContext.getCurrentInstance().addCallbackParam("pdfFile", myfile);
JavaScript:
function myPdfView(args) {
if(args && args.validationOk) {
window.open("mypdfviewer.xhtml?file=" + args.pdfFile, '_blank');
}
}
在我的项目中,我有一个命令 link,其中 "target" 属性值设置为“_blank”。因此,如果出现验证错误,它将打开一个新的 window 并显示错误消息。
但要求是如果验证正确它应该定位到新的 window 否则它将保留在同一页面并显示错误消息。
现有代码:
<p:commandLink value="View"
styleClass="view_link"
ajax="false"
action="#{bean.someMethod('preview')}"
target ="_blank" />
我的解决方案:
<p:commandLink value="View"
styleClass="view_link"
ajax="false"
action="#{bean.someMethod('preview')}"
target="#{bean.target}">
<p:ajax listener="#{bean.handelAjaxBehavoiurEvent}"/>
</p:commandLink>
在 listner 方法中,我正在验证表单并为 p:commandlink 设置目标值。但它不起作用。
预期结果:当我单击 link 时,它应该验证表单值。如果值正确,则在浏览器中打开一个新选项卡并预览 pdf 文件。否则在现有页面上显示错误消息。
这就是为什么在检查 link 本身时它会打开新的。我想在表单验证后设置目标属性的值。
这就是我是如何做这些事情的:
我有一个 xhtml 页面可以查看 任何 PDF(即 mypdfviewer.xhtml)。
该 bean 设置了一些 return 参数,例如 validationOk、pdfname、viewoptions 等,并通过 addCallbackParam()
设置了这些参数 return。在 oncomplete
中,我查找这些值,如果可以,则打开新选项卡。
对话:
<p:commandLink ajax="true" value="View" action="#{bean.someMethod('preview')}" oncomplete="return myPdfView(args)"/>
豆子:
public void someMethod(String what) {
...
RequestContext.getCurrentInstance().addCallbackParam("validationOk", true);
RequestContext.getCurrentInstance().addCallbackParam("pdfFile", myfile);
JavaScript:
function myPdfView(args) {
if(args && args.validationOk) {
window.open("mypdfviewer.xhtml?file=" + args.pdfFile, '_blank');
}
}