0

我正在做一个增强项目。有一个父<form>元素。我在这个父表单中包含了一个 XHTML 文件。包含的 XHTML 文件有一个<a4j:commandLink>. 不会调用此操作。<a4j:commandLink>现在,如果我将内部包裹起来,这将起作用<h:form>。这样,父表单的动作和<a4j:commandLink>' 动作一样被调用。但不鼓励嵌套形式。我不能使用父表单的操作,因为它转到一个 servlet,而我的操作是在请求范围的 bean 中。我无法访问 servlet 中的 bean。<h:form>非常感谢任何有关如何在没有 的情况下进行操作调用的帮助。这是它的样子:

    <form id="parentFormId" name="parentFormId" action="aservletaction">
      <a4j:outputPanel id="includedRegion">

        <ui:include src="setupView.xhtml"></ui:include>
     </a4j:outputPanel>
   </form>

setupView.xhtml 的内容:

<ui:composition>
   <a4j:outputPanel>
        <h:form>
        <a4j:commandLink action="#{myBean.actionMethod}"
          render="adatatableid" limitRender="true"/>
        </h:form>
</ui:composition>
4

2 回答 2

2

RichFaces 组件必须在表单中,否则它们将无法工作(至少是可执行的)。

现在,<a4j:commandLink>(和 commandButton)执行整个表单是默认行为,要更改它使用execute 属性

<a4j:commandLink execute="@this" … >

这会将执行仅限于链接。

于 2013-05-30T08:37:35.623 回答
1

它不应该工作。不要嵌套表单,因为它在一般 HTML 中是不合法的,特别是在由 JSF 呈现的HTML 代码中。因此,您的代码中有以下构造:

<form>
    ...
    <h:form>
        ...
    </h:form>
    ...
</form>

摆脱它,它会按预期工作,即通过创建一个简单的表单到表单结构。

于 2013-05-30T06:31:22.143 回答