У меня проблема с компонентом Apache Trinidad tr: panelTabbed.Я пытаюсь поместить различные формы во вкладки (tr: showDetailItem) этого компонента.Это, с первой попытки, не работает вообще (я получаю в NullPointerException, org.apache.myfaces.trinidadinternal.ui.laf.base.xhtml.FormValueRenderer.addNeededValue (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.
Я обнаружил, что 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>
Это прекрасно работаетво-первых, но приводит меня к моей последней проблеме:
У меня есть некоторая проверка в каждой форме. Когда пользователь пытается переключиться на вторую вкладку, в то время как первая содержит ошибки проверки, он или она неразрешено делать это. Я хочу избежать такого поведения, но я также хочу проверить содержимое текущей вкладки, когда пользователь нажимает кнопку сохранения.
Есть предложения, как решить эту проблему?
Заранее спасибо