Я искал архивы, чтобы найти ответ, который может помочь, но ничего действительно не применимо.Первичные данныеТаблица добавляет только одну строку
У меня есть страница в jsf с вложенными dataTables, которая содержит список из бэк-бэка. На странице, по-видимому, хранятся данные без каких-либо проблем, но когда я пытаюсь добавить строки из моих таблиц данных, используя объект PR: collector Primefaces, в моей базе данных всегда отображается только одна строка. Я всегда добавляю пустой объект в оба списка.
Объекты, содержащиеся в списке, являются пользовательскими объектами, реализующими Serializable.
My bean bean is ConversationScoped, а данные в фонотеке создаются при запуске разговора.
Вот моя главная страница:
<ui:composition template="/templates/pageLayout.xhtml">
<ui:define name="pageContent">
<h:form id="genericWorkflowMainForm" enctype="multipart/form-data">
<p:panel id="actionList">
<div align="right">
<p:commandButton id="addActionButton" value="Add Action" update="actionTable"
action="#{createGenericWorkflowBean.addAction}" ajax="false">
<p:collector id="addActionCollector" value="#{createGenericWorkflowBean.actionRow}"
addTo="#{createGenericWorkflowBean.genericWorkflowData.actionGroup.actionCompletionList}"/>
</p:commandButton>
</div>
<h:dataTable id="actionTable" var="actions"
value="#{createGenericWorkflowBean.genericWorkflowData.actionGroup.actionCompletionList}">
<h:column>
<h:outputLabel value="Action " />
<h:inputTextarea id="actionText" value="#{actions.actionRecord.actionText}" />
<br/>
<p:panel id ="actioneePanel">
<div align="right">
<p:commandButton id="addApproverButton" value="Add Approver" onclick="addApprover.show()"/>
</div>
<h:dataTable value="#{actions.actionRecord.actionees}" id="actioneeListValues" var="actioneeRecord">
<h:column>
<h:outputText id="actioneeLabel" value="Actionee " />
<h:outputText id="actionee" value="#{actioneeRecord.user.user.name}" />
<h:outputText id="actioneeCommentlabel" value="Comments " rendered="#{actioneeRecord.user.display}"/>
<h:inputTextarea id ="actioneeComment" value="#{actioneeRecord.userComment}" rendered="#{actioneeRecord.user.display}"/>
<br/>
<p:commandLink id="removeActionee" value="Remove" update="actioneeListValues" rendered="#{!actioneeRecord.user.display}">
<p:collector value="#{actioneeRecord}" removeFrom="#{actions.actionRecord.actionees}"/>
</p:commandLink>
</h:column>
</h:dataTable>
<p:dialog id="addApprover" header="Add Approver" widgetVar="addApprover" modal="false" closable="false"
resizable="false" width="250">
<div>
<p:autoComplete id="autoCompleteApprover" value="#{createGenericWorkflowBean.newApprover}"
/**//>
<br/>
<p:commandButton id="addNewApprover" title="Add Approver" value="Add"
update="actioneeListValues" onclick="addApprover.hide()" ajax="false"
action="#{createGenericWorkflowBean.addApprover()}">
<p:collector value="#{createGenericWorkflowBean.newApprover}"
addTo="#{actions.actionRecord.actionees}"/>
</p:commandButton>
</div>
</p:dialog>
</p:panel>
</h:column>
</h:dataTable>
</p:panel>
</h:form>
</ui:define>
</ui:composition>
Ниже перечислены части моего бэк-бобов, которые относятся к р: Коллектор добавление и удаление части списка.
@Named
@ConversationScoped
public class CreateGenericWorkflowBean extends WorkflowBean {
@Inject
Conversation conversation;
private Actionee newApprover;
private ActionCompletionRecord actionRow = new ActionCompletionRecord();
private Actionee actioneeRow = new Actionee();
public GenericWorkflowData getGenericWorkflowData() {
return (GenericWorkflowData) getData();
}
public void addApprover() {
setNewApprover(new Actionee());
}
public void addAction() {
actionRow = new ActionCompletionRecord();
}
}
Я все еще изучаю JSF и Primefaces, поэтому не знаю, сделал ли я что-то, что никогда не сработает.
Любая помощь была бы принята с благодарностью.
Matt Tatham
Это слишком много кода. Пожалуйста, изолируйте проблему на минимально возможной, но полной отдельной странице XHTML и одном бэкбоне. Например, являются тегом '' и "style =" border: none "' атрибут '' абсолютно необходим для воспроизведения точно такой же проблемы? Нет? Просто пропустите это. То же самое относится ко всем другим ненужным тэгам, атрибутам, свойствам и т. Д. Предоставьте наименьший возможный код, содержащий ** только ** код, который абсолютно необходим, чтобы воспроизвести проблему самостоятельно, просто скопировав и запустив код. –
BalusC
Удалена всякая мякина. Извините, я все еще очень новичок в публикации вопросов здесь. – mtatham