Моя проблема заключается в следующем: у меня есть гармошка с различными вкладками.И в одной вкладке есть выпадающий, вход и кнопка Command.А когда пользователь что-то добавляет, нажимая кнопку, в список добавляется элемент, который должен отображаться в приведенной выше таблице данных.И выше должно быть отображено еще одно поле ввода и другая кнопка.
С JSF все работало нормально, но <h:commandButton/>
обновляет всю аккордеонную панель, закрывает текущую и открывает первую.<p:commandButton/>
сначала был «в порядке», но ничего не обновил, или идентификатор не был найден.
Теперь я даже получаю исключение NullPointerException, поскольку кнопка запускается автоматически при загрузке страницы.Я не знаю ошибку.Я пробовал несколько вещей, но ничего не работает.Кто-нибудь может помочь?
<p:accordionPanel id="tabPanel" header="Lebensmittel" multiple="true">
<p:tab title="Neue Mahlzeit erstellen">
<h:form>
<h:outputText value="Neue Mahlzeit erstellen: "/>
<br/>
<p:selectOneMenu value="#{kcalModel.grocPrototype}">
<f:converter binding="#{kcalModel.grocProtoConverter}"/>
<f:selectItem itemLabel="Bitte auswählen.." itemValue="" />
<f:selectItems value="#{kcalModel.grocPrototypes}" var="groc" itemValue="#{groc.name}"
itemLabel="#{groc.name}"/>
</p:selectOneMenu>
<!--<h:inputText value="#{kcalModel.amount}"/> Gramm-->
<p:inputNumber value="#{kcalModel.amount}" size="5"/> Gramm
<p:commandButton value="+ zu neuer Mahlzeit hinzufügen" process="@form" update="form:meal" action="#{kcalModel.addGroceryToMeal()}"/>
</h:form>
<h:form id="meal">
<p:fragment>
<p:autoUpdate />
<h:dataTable id="grocs" value="#{kcalModel.meal.groceries}" var="groc">
<h:column>
<h:outputText value="#{groc.name}"/>
</h:column>
<h:column>
<h:outputText value="#{groc.volumeInGramm}"/>
</h:column>
</h:dataTable>
<h:inputText id="titel" value="#{kcalModel.meal.title}" pt:placeholder="Bezeichnung" required="true"
requiredMessage="Bezeichnung fehlt." rendered="#{kcalModel.meal.groceries.size() > 0}">
<h:message for="titel" style="color:indianred"/>
</h:inputText>
<h:selectOneMenu value="#{kcalModel.meal.mealType}" rendered="#{kcalModel.meal.groceries.size() > 0}">
<f:selectItem itemLabel="Bitte auswählen.." itemValue="" />
<f:selectItems value="#{kcalModel.mealTypes}" var="type" itemValue="#{type}"
itemLabel="#{type.toString()}"/>
</h:selectOneMenu>
<h:commandButton value="neue Mahlzeit erstellen" action="#{kcalModel.createMeal()}"
rendered="#{kcalModel.meal.groceries.size() > 0}"/>
</p:fragment>
</h:form>
</p:tab>
<p:tab title="Benutzerdefinierte Mahlzeiten" rendered="#{kcalModel.userDefinedMeals.size() > 0}">
<h:form>
<p:selectOneMenu value="#{kcalModel.meal}" rendered="#{kcalModel.userDefinedMeals.size() > 0}">
<f:selectItems value="#{kcalModel.userDefinedMeals}" var="uMeal" itemValue="#{uMeal}" itemLabel="#{uMeal.title}"/>
<f:converter binding="#{kcalModel.mealConverter}"/>
</p:selectOneMenu>
<p:commandButton value="+ Mahlzeit hinzufügen" action="#{kcalModel.addMeal()}"
rendered="#{kcalModel.userDefinedMeals.size() > 0}" update=":revenue, :kcals"/>
</h:form>
</p:tab>
</p:accordionPanel>