我的页脚布局上有以下链接:
<xp:link escape="true" id="link1" text="Click me" target="_blank">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:facesContext.getExternalContext().redirect("http://www.example.com")}]]></xp:this.action>
</xp:eventHandler>
</xp:link>
主要布局包含一些必填字段。如果我点击链接,我会收到消息:“该字段是必需的!”等等。但是,如果我单击主页面中的链接(类似于主页),则URL会将我重定向到相应的站点,但会在同一选项卡上。 target="_blank"
被忽略了吗?
如果我想在点击链接时想要忽略的验证和要在新标签上打开的网址,我该如何实现?
答案 0 :(得分:2)
问题是您正在使用服务器端逻辑来确定要加载的目标/ URL。因此,您的客户端属性将被忽略。
请改为:
<xp:link escape="true" id="link1" text="Click me" target="_blank" value="http://www.example.com">
</xp:link>
您还可以提前计算网址:
<xp:link escape="true" id="link1" text="Click me" target="_blank" value="http://www.example.com">
<xp:this.value><![CDATA[#{javascript:
if (something) {
return "http://example.org";
} else {
return "http://example.com";
}
}]]></xp:this.value>
</xp:link>