p:带有f:param的menuitems用于传递参数

时间:2013-06-09 04:04:18

标签: jsf primefaces xhtml params

我有菜单栏<p:submenu>,其中有手机品牌作为菜单项,这些菜单项应该重定向到同一页面,但加载数据应该不同。所以我尝试使用param和viewparam来抓住品牌名称

菜单栏JSF代码

<p:submenu label="PHONES">
    <p:menuitem value="Apple" outcome="phones" >                               
        <f:param name="brand" value="Apple" />
    </p:menuitem>
    <p:menuitem value="Motorola" outcome="phones" >
        <f:param name="brand" value="Motorola"/>
    </p:menuitem>
    <p:menuitem value="Nokia" outcome="phones">
        <f:param name="brand" value="Nokia"/>
    </p:menuitem>
    <p:menuitem value="Samsung" outcome="phones">
        <f:param name="brand" value="Samsung"/>
    </p:menuitem>
</p:submenu> 

paramview代码 - 此代码位于不同的xhtml文件中。编码的身体开始

<h:body>
    <f:metadata>  
        <f:viewParam name="brand" value="#{phonesBean.brand}" />  
    </f:metadata>

PhonesBean

@ManagedBean
@RequestScoped
public class PhonesBean implements Serializable {

    private String brand;
    private List<PhoneSummary>phoneList = new ArrayList<PhoneSummary>();

    /**
     * Creates a new instance of PhonesBean
     */
    public PhonesBean() {
        getPhoneModelList();
    }

    private void getPhoneModelList(){
        brand=MenuItemManage.phoneBrand;
        DbPhones dbPhones = new DbPhones();
        phoneList=dbPhones.getPhonesSummary(brand);    
    }
}

现在点击<p:menuitem>时,它会重定向到带有参数标记的页面,例如“brand = Nokia”,但我无法从<f:viewParam>捕获它并将其设置为bean变量。如何解决这个问题?

0 个答案:

没有答案