2011-01-28 63 views
1

是否有可能在不使用javascript的情况下获得h:commandLink的行为?我正在使用JSF2JSF2:没有javascript的commandLink

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

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

回答

4

使用<h:outputLink><h:link>代替。这会生成一个简单的HTML <a>元素,而不需要<h:form>。要调用操作,必须将逻辑从bean操作方法移动到与打开的视图关联的托管bean的构造函数或@PostConstruct

如果您需要传递参数,请使用<f:param>将它们附加为查询字符串。您可以在faces-config.xml中使用<managed-property>(或者当您已经使用JSF 2.0时使用@ManagedProperty),以便在bean中设置这些参数。您可以通过@PostConstruct方法访问它们。

0

在你的行动,你可以使用

try { 
    FacesUtils.redirect("yourUrl.jsf"); 
} 
catch (IOException e) { 
    Log.get().error(e); 
} 

将请求重定向。

当然,你可以生成你的网址,你想

希望这有助于

+1

他希望链接中已有完整的URL。 – BalusC 2011-01-28 12:31:26

+0

@BalusC在这种情况下,你是对的,是解决方案 – 2011-01-28 13:34:02