使用ui的模板:insert-ui:合成效果不佳

时间:2018-05-07 05:38:34

标签: jsf primefaces

我正在尝试使用jsf facelets模板,使用组件ui:insert 在模板和ui:他们使用它的组合中,我的代码是这样的:

模板:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <h:outputStylesheet name="css/default.css"/>
        <h:outputStylesheet name="css/cssLayout.css"/>
        <h:outputStylesheet name="css/Cabecera.css"/>
        <h:outputStylesheet name="css/StyleButton.css"/>
        <h:outputStylesheet name="css/Progreso.css"/>
        <title>Registro</title>
    </h:head>
    <h:body>
        <div id="top">
            <ui:insert name="top">Top</ui:insert>
        </div>
        <div>
            <div id="left">
                <ui:insert name="left">Left</ui:insert>
            </div>
            <div id="content" class="left_content">
                <ui:insert name="content">Content</ui:insert>
            </div>
        </div>
        <div id="bottom">
            <ui:insert name="bottom">Bottom</ui:insert>
        </div>
    </h:body>
</html>

用户:

<ui:composition template="./../Templeates/plantilla.xhtml"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:p="http://primefaces.org/ui">
    <ui:define name="content">
        <h:outputText value="Registrar Nuevo Estudiante" style="font-size: 35px;font-weight: 100;color: #dce9f0"/>
        <h:form id = "formInput">
            <p:outputLabel for="codigo" value="Codigo "/>
            <p:chips id="codigo" label="codigo Estudiante" value="#{RegistroAsistencia.codigos}"/>
        </h:form>
        <h:form id="formbutton" >
            <p:commandButton value="Añadir" icon="ui-icon-star" actionListener="#{RegistroAsistencia.agregarAsesoriaEstudiante()}" update=":formInput">
                <p:resetInput target=":formInput"/>
            </p:commandButton>
        </h:form>
    </ui:define>
</ui:composition>

在managedbean中我有类似

的东西
public List<String> getCodigos() {
        Logger.getLogger(ConsultaInformacionAsistentesBean.class.getName()).log(Level.SEVERE, "--->\n get codigos: "+codigos+"\n");
        return codigos;
    }

    public void setCodigos(List<String> codigos) {
        Logger.getLogger(ConsultaInformacionAsistentesBean.class.getName()).log(Level.SEVERE, "--->\nset codigos: "+codigos+"\n");
        this.codigos = codigos;
    }

我把记录器分别用来验证get和set方法,当我使用“Añadir”按钮时,从未进行设置请求,我在不使用模板的情况下验证它,并在此工作:

get codes: null

set codes: null <-- When pressing the button

set codes: [2135494]

但是当我尝试使用模板时:

get codigos: null

nothing <-- When pressing the button

get codigos: null

在agregarAsesoriaEstudiante方法中,codigos为空。

总之,如果我使用模板,则从不使用元素的“set”方法,因此在managedBean中它们为null并且我无法获得输入,尝试PrimeFaces的其他元素与p:chips不同像p:inputText但我没有找到解决方案,完全相同的代码而不使用模板完美地工作,我可能需要代码中的某些内容或者如果有人知道或有类似问题则会出现错误我会很感激如果我分享了它。

0 个答案:

没有答案