2011-08-19 52 views
1

我对Apache Trinidad tr:panelTabbed组件有问题。我试图将不同的表单放入此组件的选项卡(tr:showDetailItem)中。这对于第一次尝试,并没有在所有的工作(我在的NullPointerException得到,org.apache.myfaces.trinidadinternal.ui.laf.base.xhtml.FormValueRenderer.addNeededValue(FormValueRenderer.java:126):Apache Trinidad tr:panelTabbed总是验证当前选项卡的内容

<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内没有内容:表单标签,所以它无关,与我自己的Java bean

我发现了TR:panelTabbed必须放在一个TR内:表格标签,因为其他表格标签中的一个表格标签是不允许的(这再次导致上述异常),我将我的代码更改为:

<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> 

在首位工作正常,但导致我对我的最后一个问题:

我在每个窗体一些验证。当用户尝试切换到第二个选项卡,而第一个选项卡包含验证错误时,他或她不能这样做。我想避免这种行为,但我也想在用户点击保存按钮时验证当前选项卡的内容。

任何建议如何解决这个问题?

在此先感谢

回答

0

特立尼达有TR:子窗体标签,可能做什么您需要,请尝试使用一个通用TR:form标签和一个小TR:子窗体每个面板里面(我希望你想验证单独的表格)。

+0

太好了,解决了我的问题:) – w4rumy

相关问题