我面临着一个非常相似的问题,我已经提出了票,但现在问题出现在我的主要项目中。上一张票涉及一个测试项目。 这是票的链接。我将首先简要解释我的项目,然后提供代码。
这是一个基本的用户界面,因为我省略了不相关的部分,但是当您启动 web 应用程序时,您应该被定向到通过使用 ajax 加载了介绍的主页。我正在使用一个名为 Navigation 的托管bean,它是一个简单的 pojo,带有 2 个注释和一个名为“page”的字符串属性。我已将该属性设置为“介绍”,因此默认情况下会加载它。
// Navigation.java
@ManagedBean
@RequestScoped
public class Navigation {
private String page = "intro";
public String getPage() {
return page;
}
public void setPage(String page) {
this.page = page;
}
}
index.xhtml 看起来像这样:
<!-- index.xhtml -->
<h:body>
<!-- Navigation -->
<h:form>
<p:menubar>
<p:menuitem value="Home" icon="ui-icon-home" action="#{navigation.setPage('intro')}" update=":contentPanel" />
<p:submenu label="Actions" icon="ui-icon-transferthick-e-w">
<p:submenu label="Employee">
<p:menuitem value="Search" action="#{navigation.setPage('employee/find')}" update=":contentPanel" />
</p:submenu>
</p:submenu>
</p:menubar>
</h:form>
<!-- ContentPanel -->
<p:panel id="contentPanel" styleClass="content">
<ui:include src="/#{navigation.page}.xhtml" />
</p:panel>
</h:body>
现在,当您导航到“操作/员工/新建”时,文件 find.xhtml 确实会加载到主页中,但是表单本身不起作用。这是文件:
<!-- find.xhtml -->
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core">
<f:facet name="header">
Create new employee
</f:facet>
<h:outputLabel value="User ID: " for="userId" />
<p:inputText value="#{managedEmployee.userId}" id="userId" />
<p:commandButton value="Show" update="result" />
<h:outputText id="result" value="#{managedEmployee.userId}" />
</ui:composition>
因此,用户将能够在表单中输入用户 ID,并且当按下命令按钮时,它将显示在表单附近。显然我一定做错了什么,但我似乎无法弄清楚。我不喜欢这样说,但我很想得到答案。
提前致谢!