我遇到了 JSF 2.2 的问题,我有这个结构:
问题:我无法设置变量(通过sessionScope - MainBean),因为catalog.xhtml(通过requestScope / ViewScope - CatalogBean)。
LoginBean:SessionScope
@ManagedBean(name="loginBean")
@SessionScoped
public class LoginBean {
private Session userLog;
MainBean:SessionScope
@ManagedBean
@SessionScoped
public class MainBean {
@ManagedProperty(value="#{loginBean}")
private LoginBean userLogin;
CatalogBean:ViewScope / RequestScope
@ManagedBean
@ViewScoped
public class CatalogBean {
@ManagedProperty(value="#{mainBean}")
private MainBean userManagerCatalog;
ItemBean:ViewScope / RequestScope
@ManagedBean
@ViewScoped
public class ItemBean {
@ManagedProperty(value="#{mainBean}")
private MainBean userManagerItem;
问题是当我输入 item.xhtml(ItemBean) 时,(因为catalog.xhtml)我在MainBean(SessionScope)中保存一个变量,其中:
<p:commandLink action="item.xhtml?faces-redirect=true" actionListener="#{mainBean.setSelectedItem(it)}">
<p:graphicImage library="resources" name="images/folderNormal.png" style="width: 100; height: 100"/>
<f:setPropertyActionListener value="#{it}" target="#{mainBean.selectedItem}" />
</p:commandLink>
感兴趣的数据
*我曾经使用过两种不同的形式(actionListener和setPropertyActionListener)
**我必须输入目录才能输入项目
***我在窃听,这使得改变但是接下来,我看到程序丢失了这个数据
****我在Catalog中使用了属性SessionScope(功能很好),但是我无法更改目录,因为变量没有改变它的值。
欢迎任何帮助,提前谢谢