panelTabbed总是验证当前选项卡的内容



我有一个问题与Apache特立尼达tr:panelTabbed组件。我试图将不同的形式放入该组件的选项卡(tr:showDetailItem)。这,对于第一次尝试,根本不起作用(我得到一个在NullPointerException, org.apache.myface .trinidadinternal.ui.laf.base. xml . formvaluerenderer . addneeddedvalue (FormValueRenderer.java:126):

<tr:panelTabbed>
  <tr:showDetailItem text="First tab">
    <tr:form>
      <tr:inputText label="Value 1" value="#{myBean.someValue1}" required="true" />
      <tr:commandButton text="Save Value 1" actionListener="#{myBean.saveValue1}" />
    </tr:form>
  </tr:showDetailItem>
  <tr:showDetailItem text="Second tab">
    <tr:form>
      <tr:inputText label="Value 2" value="#{myBean.someValue2}" required="true" />
      <tr:commandButton text="Save Value 2" actionListener="#{myBean.saveValue2}" />
   </tr:form>
  </tr:showDetailItem>
</tr:panelTabbed>

当我的tr:form标签中没有内容时,也会发生此错误,因此它与我自己的Java bean无关。

我发现tr:panelTabbed必须放在tr:form标签内。由于不允许在另一个表单标签中使用一个表单标签(这再次导致上面提到的异常),因此我将代码更改为:

<tr:form>
  <tr:panelTabbed>
    <tr:showDetailItem text="First tab">
      <tr:inputText label="Value 1" value="#{myBean.someValue1}" required="true" />
      <tr:commandButton text="Save Value 1" actionListener="#{myBean.saveValue1}" />
    </tr:showDetailItem>
    <tr:showDetailItem text="Second tab">
      <tr:inputText label="Value 2" value="#{myBean.someValue2}" required="true" />
      <tr:commandButton text="Save Value 2" actionListener="#{myBean.saveValue2}" />
   </tr:showDetailItem>
  </tr:panelTabbed>
</tr:form>

这首先工作得很好,但导致我的最后一个问题:

我在每个表单中都有一些验证。当用户试图切换到第二个选项卡,而第一个选项卡包含验证错误时,他或她不允许这样做。我想避免这种行为,但我也想在用户单击save按钮时验证当前选项卡的内容。

有什么建议来解决这个问题吗?

Thanks in advance

Trinidad有一个tr:subform标签可以满足您的需要,尝试在每个面板中使用一个通用的tr:form标签和一个小的tr:subform(我希望您想分别验证表单)。

相关内容

  • 没有找到相关文章

最新更新