在JSF中调用另一个页面

在JSF中调用另一个页面,jsf,Jsf,我有一个带有2.xhtml文件的简单JSF应用程序。运行应用程序时,显示的第一个页面是welcome.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="ht

我有一个带有2.xhtml文件的简单JSF应用程序。运行应用程序时,显示的第一个页面是welcome.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:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Final Project</title>
</h:head>
<h:body bgcolor="white">
<div align="center" style="border:5px outset blue;">Welcome to the Product         Inventory     Application</div>
<br></br>
<br></br>
    <h:commandButton value="View All Products" action="allProducts"/>
</h:body>

最终项目
欢迎使用产品库存应用程序




它显示得很好,但当我按下View All Products按钮时,我希望它显示allProducts.xhtml facelet。但是当我点击按钮时,什么也没有发生,没有异常或任何事情。allProducts.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:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>All Products</title>
</h:head>
<h:body bgcolor="white">
<h3>Test</h3>
</h:body>
</html>

所有产品
试验

我记不清确切的细节,但这里是总体思路。欢迎页面上按钮的action属性引用了支持bean的“allProducts”方法。该方法必须返回字符串'allProducts.xhtml',以便JSF显示产品页面。
因此,您必须为欢迎页面引入一个支持bean,并为该类赋予一个“allProducts”方法。

问题是,
UICommand
和类似命令)必须位于表单中,即
。将welcome.xhtml页面更改为:


最终项目
欢迎使用产品库存应用程序




更多信息:

  • ,理由1。在我看来,如果您打算大量使用JSF,我建议您将这个问题标记为最喜欢的问题:)

不一定。您可以只编写要转发的视图的名称,或者从支持bean调用一个方法,该方法返回一个
字符串,其中包含(检查)要转发的视图的名称。