我有菜单栏<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>
电话豆
@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 变量。如何解决这个问题?