是否可以在不使用javascript的情况下获取h:commandLink
的行为?我正在使用JSF2
如果我想使用灯箱组件,我需要事先获得完整生成的网址。如果我的网址是基于操作的,我只能使用h:commandLink
,这会生成绑定到鼠标点击操作的JavaScript。
我想拥有JSF导航功能(例如:使用action="#{bean.action}"
生成链接)并有办法获取完整生成的URL。
答案 0 :(得分:4)
改为使用<h:outputLink>
或<h:link>
。这会生成纯HTML <a>
元素,而不需要<h:form>
。要调用操作,您必须将逻辑从bean操作方法移动到与打开的视图关联的托管bean的构造函数或@PostConstruct
。
如果需要传递参数,请使用<f:param>
将它们作为查询字符串附加。您可以在<managed-property>
中使用faces-config.xml
(或者当您已经使用JSF 2.0时使用@ManagedProperty
)在bean中设置这些参数。您可以使用@PostConstruct
方法访问它们。
答案 1 :(得分:0)
在您的操作中,您可以使用
try {
FacesUtils.redirect("yourUrl.jsf");
}
catch (IOException e) {
Log.get().error(e);
}
重定向请求。
当然,您可以根据需要生成您的网址
希望这有帮助