JSF2:没有javascript的commandLink

时间:2011-01-28 11:48:01

标签: java jsf jsf-2 lightbox

是否可以在不使用javascript的情况下获取h:commandLink的行为?我正在使用JSF2

如果我想使用灯箱组件,我需要事先获得完整生成的网址。如果我的网址是基于操作的,我只能使用h:commandLink,这会生成绑定到鼠标点击操作的JavaScript。

我想拥有JSF导航功能(例如:使用action="#{bean.action}"生成链接)并有办法获取完整生成的URL。

2 个答案:

答案 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);
}

重定向请求。

当然,您可以根据需要生成您的网址

希望这有帮助