Ленивый вид не работает, когда включен в файл xhtml из другого файла xhtml

Lazy View отлично работает в ListIM.xhtml. При добавлении тега в ListIM.xhtml и включении его в test.xhtml Таблица данных появляется, но ленивые операции не могут быть выполнены.

test.xhtml:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://xmlns.jcp.org/jsf/html"
  xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<h:head>
    <title>Facelet Title</title>
</h:head>
<h:body>
    <ui:include src="ListIM.xhtml">
    </ui:include>
</h:body>
</html>

ListIM.xhtml

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://xmlns.jcp.org/jsf/html"
  xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
 xmlns:p="http://primefaces.org/ui">
<h:head>
    <title>Facelet Title</title>
</h:head>
<h:body>
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui">


   <h:form id="form">
      <p:dataTable var="iM" value="#{LazyView.lazyModel}" paginator="true" rows="10"
             paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
             rowsPerPageTemplate="5,10,15" selectionMode="single" selection="#{LazyView.selectedIm}" id="iMTable" lazy="true">
    <p:ajax event="rowSelect" listener="#{LazyView.onRowSelect}" update=":form:iMDetail" oncomplete="PF('iMDialog').show()" />

    <p:column headerText=" Id" sortBy="#{iM.id}" filterBy="#{iM.id}">
        <h:outputText value="#{iM.id}" />
    </p:column>
    <p:column headerText=" Name" sortBy="#{iM.name}" filterBy="#{iM.name}">
              <h:outputText value="#{iM.name}" />
    </p:column>
          <p:column headerText="Is  Active?" sortBy="#{iM.isActive}" filterBy="#{iM.isActive}">
              <h:outputText value="#{iM.isActive}" />
    </p:column>
</p:dataTable>

        <p:dialog header="IM Detail" widgetVar="iMDialog" modal="true" showEffect="fade" hideEffect="fade" resizable="false">
    <p:outputPanel id="iMDetail" style="text-align:center;">
        <p:panelGrid  columns="2" rendered="#{not empty LazyView.selectedIm}" columnClasses="label,value">


            <h:outputText value=" Id:" />
            <h:outputText value="#{LazyView.selectedIm.id}" />

            <h:outputText value=" Name" />
            <h:outputText value="#{LazyView.selectedIm.name}" />

            <h:outputText value="Is Active?:" />
            <h:outputText value="#{LazyView.selectedIm.isActive}" />

        </p:panelGrid>
    </p:outputPanel>
</p:dialog>
  </h:form>

  </ui:composition>


    </h:body>

LazyView.java

package com.service;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import org.primefaces.event.SelectEvent;
import org.primefaces.model.LazyDataModel;
import org.primefaces.showcase.domain.Im;

@ManagedBean(name="LazyView")
@ViewScoped
public class LazyView implements Serializable {

private LazyDataModel<Im> lazyModel;

private Im selectedIm;

@ManagedProperty("#{imService}")
private ImService service;

@PostConstruct
public void init() {
    lazyModel = new LazyImDataModel(service.createIms());
}

public LazyDataModel<Im> getLazyModel() {
    return lazyModel;
}

public Im getSelectedIm() {
    return selectedIm;
}

public void setSelectedIm(Im selectedIm) {
    this.selectedIm = selectedIm;
}

public void setService(ImService service) {
    this.service = service;
}

public void onRowSelect(SelectEvent event) {

}
}

Заранее спасибо

0 ответов

Другие вопросы по тегам