Jsf 按commandButton键,将通过页面获取的值传递给托管bean

Jsf 按commandButton键,将通过页面获取的值传递给托管bean,jsf,Jsf,我需要将通过请求范围的托管bean{pim}(当页面最初加载时)在页面上检索到的bean的值设置为按下commandButton时的{requestScope}。 但是,当按下命令按钮时,它使用新实例化的#{pim}bean的值,该值将为空 #{pim.targetId} <p:commandButton value="View"> <f:setPropertyActionListener value="#{pi

我需要将通过请求范围的托管bean
{pim}
(当页面最初加载时)在页面上检索到的bean的值设置为按下commandButton时的
{requestScope}
。 但是,当按下命令按钮时,它使用新实例化的
#{pim}
bean的值,该值将为空

        #{pim.targetId}

        <p:commandButton value="View">    
            <f:setPropertyActionListener value="#{pim.targetId}" target="#{requestScope.id}" />  
        </p:commandButton>
{pim.targetId}
但当包含值的
#{pim}
bean在请求后被销毁时,这不起作用。我希望它能工作,希望它能分配加载页面时检索到的值,但它不能这样工作。

使用
而不是
。前者在呈现命令按钮时直接在生成的ajax脚本中设置请求参数,而后者在处理表单提交时完全在服务器端设置属性(因此,表单提交已经丢失,因为它涉及一个全新的请求,并且是一个请求范围的属性)

<f:param name="id" value="#{pim.targetId}" />  
@ManagedProperty("#{param.id}") 
private Long targetId;