3

通过检查网络教程,我正在尝试创建一个演示 JSF 页面。当我尝试运行它时,页面显示为空白。即使没有标签的文本也不会显示。

索引.html:

<!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">

<h:head>
</h:head>

<h:body>
    <h:outputLabel  value="#{welcome.welcome()}"/>
</h:body>

欢迎.java:

package ap.demojsf.welcome;

import javax.faces.bean.RequestScoped;
import com.sun.org.glassfish.gmbal.ManagedObject;

@ManagedObject()
@RequestScoped
public class welcome {

private String name;

public welcome() {
    this.name = "Welcome to the first page";
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}
 }

如果我写了一些简单的文本(没有任何标签),那么当我在浏览器中打开 index.html 时我可以看到,但是当我将它作为“运行方式”运行时没有显示任何内容。我安装了 Apache Tomcat 7。

任何人都可以指导我吗?

4

3 回答 3

2

如果您的 index.html 是您的欢迎页面,请转到您的 web.xml,确保将index.html 放在第一个添加.html url-模式,如下所示

默认情况下,tomcat 识别 .faces 中的 url

  http://localhost:8080/YourProject/index.xhtml 

除非您添加模式 .xhtml,否则上面的 url 将不起作用

 http://localhost:8080/YourProject/index.faces 

这个可以!!

  <welcome-file-list>
     <welcome-file>index.xhtml</welcome-file>
  </welcome-file-list>

<servlet>
     <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
</servlet>
 <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
         <url-pattern>*.jsf</url-pattern>
        </servlet-mapping>
    <servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
 <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>
     <servlet-mapping>
     <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
   <servlet-name>Faces Servlet</servlet-name>
   <url-pattern>*.faces</url-pattern>
</servlet-mapping>
 <servlet-mapping>
 <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>/faces/*</url-pattern>
   </servlet-mapping>

您应该用 @ManagedBean 替换 @ManagedObject

于 2013-07-17T09:49:40.843 回答
0

你可以试试

<h:body>
    <h:outputLabel  value="#{welcome.name}"/>
</h:body>
于 2013-07-17T09:17:36.830 回答
0

html标签替换为f:view. 顺便说一句,不要忘记检查浏览器的代理设置。

于 2013-07-17T09:36:38.057 回答