使用模板中的按钮在Getter和Setter方法中没有值

时间:2014-02-14 20:10:27

标签: java html jsf jsf-2

我有一个模板 AdvanceTemplate.xhtml 。还有 footer.xhtml 。这个页脚有提交按钮。我有一个带有inputText的 store.xhtml 页面。 但是当我点击提交按钮时,我的view-klass中的数据不会从输入字段中保存。 如果我把按钮放在放置im inputText的同一个xhtml(store.xhtml)页面上,我就得到了数据。

当我在模板中有Button时,如何编写它以从inputText字段获取数据?

AdvanceTemplate.xhtml

 <!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:ui="http://java.sun.com/jsf/facelets">
    <head>
      <title><ui:insert name="title">Example</ui:insert></title>
    </head>

    <body>

    <div id="header">
        <ui:insert name="header">
            <ui:include src="/META-INF/templates/header.xhtml"/>
        </ui:insert>
    </div>

    <div id="information">
        <ui:insert name="information">
         <ui:include src="/META-INF/templates/information.xhtml"/>
        </ui:insert>
    </div>

    <div id="content">
        <ui:insert name="content">
        </ui:insert>
    </div>

    <div id="footer">
        <ui:insert name="footer">
            <ui:include src="/META-INF/templates/advanceFooter.xhtml"/>
        </ui:insert>
    </div>

    </body>
    </html>

advanceFooter.xhtml

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!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://java.sun.com/jsf/html"
          xmlns:f="http://java.sun.com/jsf/core">

    <h:head></h:head> 
    <body>
    <h:form>

        <h:panelGrid columns="2">   
                <h:commandButton id="submit" action="#{pageServiceBean.submit}" value="#{msgs.save}" />     
            <h:commandButton id="cancel" action="#{pageServiceBean.cancel}" value="#{msgs.cancel}" immediate="true"/>
        </h:panelGrid>

        <div style="background-color:navy;width:100%;color:white"></div>
    </h:form>

</body>
</html>

store.xhtml

 <!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:ui="http://java.sun.com/jsf/facelets"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:f="http://java.sun.com/jsf/core"> 

    <ui:composition template="META-INF/templates/AdvanceTemplate.xhtml">
        <ui:define name="content">
         <h:form>    
             <h:panelGrid columns="2"> 




                      <h:outputText value="#{msgs.hostname}"></h:outputText>
                      <h:inputText id="idName" value="#{pageServiceBean.newData.name}"                      
                      </h:inputText>
                      <h:outputText value="#{msgs.type}"></h:outputText>
                      <h:inputText value="#{pageServiceBean.newData.type}"></h:inputText>                                



               </h:panelGrid> 

            </h:form>
        </ui:define>
    </ui:composition>
    </html>

1 个答案:

答案 0 :(得分:0)

<f:ajax/>代码之间使用<h:inputText>

<h:inputText id="idName" value="#{pageServiceBean.newData.name}">
    <f:ajax/>      
</h:inputText>

注意:我还没有测试过您的代码示例。