【问题标题】:"This link is deactivated, because it is not embedded in a JSF form."“此链接已停用,因为它未嵌入 JSF 表单中。”
【发布时间】:2011-05-14 15:39:30
【问题描述】:

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

<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 表单中。

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

【问题讨论】:

    标签: jsf-2 commandlink


    【解决方案1】:

    &lt;h:commandLink&gt; 触发 POST 请求。您需要将其嵌入到&lt;h:form&gt;

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

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

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

    它将隐式转到student.xhtml

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

    另见:

    【讨论】:

    • ?
    • @BalusC 我用
      写它,但也得到相同
    • 保存文件并重新发布。或者,如果您的 IDE/服务器不支持热发布,也请重新启动服务器。
    • 在浏览器中打开页面,右键单击并查看源代码并检查您是否在&lt;a&gt;周围看到HTML &lt;form&gt;
    • 这不是特定于 JSF/JSP,而是一般的 Web 开发。 POST 请求不可收藏。默认情况下,URL 更改不会反映在浏览器地址栏中。如果您想重新发送数据,浏览器的后退/前进按钮会抖动。搜索机器人(谷歌!)不会索引 POST 请求等。POST 请求应仅用于输入表单(例如注册用户、编辑数据等),而不是通过菜单链接等进行简单的页面到页面导航。
    【解决方案2】:

    您需要有&lt;h:form&gt; 包装链接。

    【讨论】:

    • 你的意思是:
      ?
    猜你喜欢
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    • 2011-03-22
    相关资源
    最近更新 更多