在<p:commandLink>中传递参数

NDe*_*per 4 jsf primefaces

嗨我有一个像这样的代码:

<p:commandLink value="#{user.strUserid}" action="test.xhtml?faces-redirect=true"/>
Run Code Online (Sandbox Code Playgroud)

如何将参数传递给test.xhtml以获取所述页面中的值?我尝试使用<f:param>tag.But可以获取test.xhtml页面中的值.请建议.

Bal*_*usC 8

替换它 <h:link>

<h:link value="#{user.strUserid}" outcome="test.xhtml">
    <f:param name="foo" value="bar" />
</h:link>
Run Code Online (Sandbox Code Playgroud)

并用于<f:viewParam>将其设置为与目标页面关联的bean的属性

<f:metadata>
    <f:viewParam name="foo" value="#{bean.foo}" />
</f:metadata>
Run Code Online (Sandbox Code Playgroud)

也可以看看:


Fre*_*eak 5

然后我想你需要尝试 <f:setPropertyActionListener ..

<h:commandButton action="#{testBean.takeParam}" >
    <f:setPropertyActionListener target="#{testBean.myStringVal}" value="something" />
</h:commandButton>
Run Code Online (Sandbox Code Playgroud)

然后你可以在你的bean类中获得这个值

    @SessionScoped
    public class TestBean{

        public String myStringVal;

        public void setMyStringVal(String myStringVal) {
            this.myStringVal = myStringVal;
        }

    }

    public void takeParam{
         System.out.println("String Value: "+myStringVal);
    }
Run Code Online (Sandbox Code Playgroud)

另请参阅BalusC在JSF中的Communication