【发布时间】:2013-03-22 22:09:47
【问题描述】:
我知道这个问题被问了一遍又一遍。我确实喜欢在与此相关的所有问题中提出的建议,并且我做了 BalusC 在this question that I put
告诉我,我还没有成功。 所以web app的流程是:
我登录,当成功时,布尔loginIn 变为真,页面被重定向到home.xhtml。 (bean TestBean 和 EnterView 被实例化和 SessionScoped)。如果loggedIn布尔值为真,则在此页面中我有4个链接。
不使用 JSTL c:choose 标签(因为 JSTL 和 JSF “一个在视图构建时运行,另一个在视图渲染时运行。” - BalusC)我使用了渲染属性。
显示链接列表,但我必须单击它们两次才能执行应执行的操作。
sn-p:
<h:form rendered="#{enterView.userBean.loggedIn}">
<ul id="grileList">
<li><h:commandLink action="#{menuView.showTestsPage(1)}"
value="label1" rendered="#{enterView.userBean.loggedIn}"/></li>
<li><h:commandLink action="#{menuView.showTestsPage(2)}"
value="label2" rendered="#{enterView.userBean.loggedIn}"/></li>
<li><h:commandLink action="#{menuView.showTestsPage(3)}"
value="label3" rendered="#{enterView.userBean.loggedIn}"/></li>
<li><h:commandLink action="#{menView.showTestsPage(4)}"
value="label4" rendered="#{enterView.userBean.loggedIn}"/></li>
</ul>
</h:form>
h:form 它被正确渲染,因此它已经经历了视图渲染阶段,但是当我单击链接时它不执行操作(仅当我单击它们两次时)所以它是视图构建时间? ??我读过他们两个,我以为我明白了......
我已经将rendered属性放在commandLinks中尝试渲染它们,但我没有成功。
【问题讨论】: