我有一个模板 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>
答案 0 :(得分:0)
在<f:ajax/>
代码之间使用<h:inputText>
。
<h:inputText id="idName" value="#{pageServiceBean.newData.name}">
<f:ajax/>
</h:inputText>
注意:我还没有测试过您的代码示例。