Как предотвратить создание пустого элемента?
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:cc="http://java.sun.com/jsf/composite"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<cc:interface>
<cc:attribute name="unitID" default="leasing360"/>
<cc:attribute name="contentID"/>
<cc:attribute name="entities" required="true"/>
<cc:attribute name="entity" required="true"/>
<cc:attribute name="filterList"/>
<cc:attribute name="requiredList" type="java.util.List"/>
</cc:interface>
<cc:implementation>
<ui:decorate template="/ui.#{cc.attrs.unitID}/document/ticket/decor-ticketEditForEntityTickets.xhtml"
id="ada-#{cc.attrs.ticketItem.uuid}">
<ui:define name="ticket_panel">
<p:panel header="#{cc.attrs.ticketItem.title}" id="ticket_panel#{cc.attrs.ticketItem.uuid}">
<ui:decorate template="/ui.#{cc.attrs.unitID}/document/ticket/decor-ticketAddForEntityTickets.xhtml"
id="ada-#{cc.attrs.ticketItem.uuid}">
<ui:define name="category">
<h:outputText id="category-add" value="Разместить новый документ"/>
</ui:define>
<ui:define name="files">
<h:commandLink styleClass="btn-border-icon">
<f:actionListener
binding="#{ticketFile.setIdDocument(component.parent.parent.parent.parent.clientId.concat(':tickets_datagrid'))}"/>
<h:outputText styleClass="icon fa fa-plus"/>
<f:ajax onevent="function(data) { if (data.status === 'success') {
dialogModalContentId = '#select-ticket-category-dialog';
$('#modal-on-top-dialog').empty();
$('#modal-on-top-dialog').append($('#select-ticket-category-dialog').children()[0]).modal('show'); } }"/>
</h:commandLink>
</ui:define>
<ui:define name="select-ticket-category-dialog">
<p:dataTable
value="#{ticket.getTicketCategoriesByEntitiesAndFilter(cc.attrs.entities, cc.attrs.filterList, cc.attrs.requiredList)}"
var="itemTicketCategory">
<p:column headerText="" width="40">
<h:commandLink onclick="clickFile();">
<h:outputText styleClass="icon fa fa-plus"/>
<f:ajax listener="#{ticketFile.setCurrentTiket(ticket.createTicketByTicketCategoryAddedView(itemTicketCategory))}"
onevent="function(data) { if (data.status === 'success') { $('#select-ticket-category-dialog').modal('hide');} }"/>
</h:commandLink>
</p:column>
<p:column headerText="Выберите категорию документа">
<h:outputText value="#{itemTicketCategory.title}"/>
</p:column>
</p:dataTable>
<script>
function clickFile() {
let target = document.querySelector('##{cc.attrs.unitID}\\:app-content\\:document-loader\\:loader\\:fileEdit\\:file_upload_input');
let event = document.createEvent('MouseEvents');
event.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 1, null);
target.dispatchEvent(event);
}
</script>
</ui:define>
</ui:decorate>
</p:panel>
</ui:define>
</ui:decorate>
</cc:implementation>
</ui:composition>
Если нажать «загрузить файл» и не выбирать файл для загрузки, то создается пустой элемент.