h:form 应该对不同的 URL 执行 GET 请求

h:form should do GET request to different URL

我有一个 JSF 应用程序,其 URL 如

/customers/12345/invoices/
/customers/56789/addresses

在每一页的顶部是一个数字选择表单,它应该导致 GET 重定向到与上面类似的 url,只是用用户选择的数字替换数字。 GET 请求应该 而不是 包含 javax.faces.ViewState。它的行为应该像在常规标记内一样,或者好像我想 post 到一个完全不同的服务器。

执行此操作的 JSF 样式是什么?

我的表单看起来与此类似:

    <p:selectOneMenu id="nr" onchange="submit()" value="#{menuBacking.selectedNumber}">
        <f:selectItems value="${menuBacking.allNumbers}" var="number" itemLabel="${number.label}" itemValue="${number.value}" />
    </p:selectOneMenu>

至此,只需使用普通 HTML <form>,或使用 GET links/buttons 而不是 POST links/buttons.

<p:selectOneMenu>支持自定义内容。只需在那里创建 GET 链接。

<p:selectOneMenu layout="custom" var="number">
    <f:selectItems value="#{menuBacking.allNumbers}" />
    <p:column>
        <a href="/customers/#{number.value}/#{number.label}">#{number.label}</a>
    </p:column>
</p:selectOneMenu>

必要时使用 CSS 摆脱 underline/color 并使它们成为内联块元素,这样看起来更好。