8

当我使用以下命令链接时:

<h:commandLink action="student" value="students" />

以及以下导航规则faces-config.xml

<navigation-rule>
  <from-view-id>/home.xhtml</from-view-id>
  <navigation-case>
    <from-outcome>student</from-outcome>
    <to-view-id>/student.xhtml</to-view-id>
  </navigation-case>
</navigation-rule>

然后我收到以下开发阶段面临的消息:

此链接已停用,因为它未嵌入 JSF 表单中。

这是如何引起的,我该如何解决?

4

2 回答 2

10

<h:commandLink>触发 POST 请求。您需要将其嵌入到<h:form>.

<h:form>
    <h:commandLink action="student" value="students" />
</h:form>

由于您已经在 J​​SF 2.0 上,您也可以只使用<h:link>它来触发不需要表单的 GET 请求,因此对于书签和 SEO 来说要好得多。<navigation-rule>由于 JSF 2.0 使用隐式导航,因此您也可以摆脱整体。

<h:link value="students" outcome="student" />

它将隐式转到student.xhtml.

确保您正在阅读 JSF 2.0 教程,而不是针对 JSF 1.x 的教程。在 JSF 2.0 中添加了许多新标签和特性。

也可以看看:

于 2011-05-14T15:41:20.603 回答
1

您需要<h:form>包装链接。

于 2011-05-14T15:43:10.040 回答