运行时不显示JSF页面

时间:2013-07-17 09:10:24

标签: java jsf jsf-2

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

的index.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>

welcome.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但是当我运行它时没有显示任何内容#34;运行为&#34;。我安装了Apache Tomcat 7。

任何人都可以指导我吗?

3 个答案:

答案 0 :(得分:2)

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

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

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

除非您添加模式.xhtml

,否则上面的网址将无效
 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

答案 1 :(得分:0)

你可以尝试

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

答案 2 :(得分:0)

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