在commandLink中传递参数不起作用。 JSF2

时间:2014-02-07 09:47:19

标签: jsf jsf-2 primefaces parameter-passing commandlink

我有一个使用SPRING3 + JSF2(mojarra 2.1.12)的JSF Web应用程序,我有以下问题:我想重定向我的网页,我想传递一个参数。

首先,我使用了一个按钮,它工作正常但后来我决定将其更改为commandlink。相同的代码不起作用,我不知道为什么。

第一个按钮代码如下:

<sec:authorize ifAnyGranted="ROLE_USER">
    <p:button id="miCuenta" value="miCuenta" title="miCuenta" outcome="/views/usuarios/visorUsuario">
        <f:param name="itemId" value="#{userContext.user.pk}" />  
    </p:button>  
</sec:authorize>

我改为:

<sec:authorize ifAnyGranted="ROLE_USER">
    <h:commandLink id="miCuenta" value="miCuenta" action="/views/usuarios/Usuarios?faces-redirect=true">
        <f:param name="itemId" value="#{userContext.user.pk}" />  
    </h:commandLink>
</sec:authorize>

我不知道第二种方法存在什么问题。任何人吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

由于您只想重定向到另一个视图并且您不想执行任何操作,请不要使用h:commandLink。请改用h:link

<h:link id="miCuenta" value="miCuenta" outcome="/views/usuarios/Usuarios">
    <f:param name="itemId" value="#{userContext.user.pk}" />  
</h:link>

答案 1 :(得分:0)

您可以在actionListener

中传递参数
    <sec:authorize ifAnyGranted="ROLE_USER">
        <h:commandLink id="miCuenta" value="miCuenta" 
action="/views/usuarios/Usuarios?faces-redirect=true" actionListener="#{bean.listener(userContext.user.pk)}>
        </h:commandLink>
    </sec:authorize>

再见