【问题标题】:Eclipse:Dynamic Web Application shows blank page when run on serverEclipse:动态 Web 应用程序在服务器上运行时显示空白页面
【发布时间】:2014-05-19 00:59:26
【问题描述】:

我特别关注本指南:http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.jst.jsf.doc.user%2Fhtml%2Fgettingstarted%2Ftutorial%2FJSFTools_tutorial_JSF20.html

在服务器上运行 xthml 文件时,我收到一个空白页,我不完全确定原因。

希望有一个简单的解决方法。如果需要,我可以提供更多信息。谢谢!

这是我试图在服务器(apache tomcat6)上运行的 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>
    <ui:define name="content">
        <h:form>
            <h:panelGrid columns="2">
                <h:outputText value="Name"></h:outputText>
                <h:inputText value="#{loginBean.name}"></h:inputText>
                <h:outputText value="Password"></h:outputText>
                <h:inputSecret value="#{loginBean.password}"></h:inputSecret>
            </h:panelGrid>
            <h:commandButton value="Login" action="login"></h:commandButton>
        </h:form>
    </ui:define>
</ui:composition>
</html>

这里是 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Xperiment</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</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>/faces/*</url-pattern>
  </servlet-mapping>
  <context-param>
    <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
  </context-param>
  <context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>resources.application</param-value>
  </context-param>
  <listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
  </listener>
</web-app>

【问题讨论】:

  • 您的 JSF 项目中可能存在一些错误配置。请发布 web.xml 和您尝试在浏览器中显示的 xhtml 文件的内容。
  • 添加了这些文件,鉴于我在描述中的链接,它们也应该是可见的。
  • 您如何访问 xhtml 文件,我的意思是,您使用的是哪个 URL?
  • localhost:8080/Xperiment/faces/login.xhtml 是我使用的 url,其中 Xperiment 是项目的名称。
  • 我不能确定为什么它没有显示。我唯一可以说的是尝试从您当前的 xhtml 文件中删除 &lt;ui:component&gt;&lt;ui:define&gt; 标记。

标签: java jsf xhtml


【解决方案1】:

&lt;ui:define&gt; 应该用于为其他视图定义模板文件中的部分,因此其他视图将使用&lt;ui:insert&gt; 来定义每个特定视图的组件。由于您的视图将作为要遵循的模板文件,因此没有要显示的 content 部分,因此 JSF 将不显示任何内容(空白页)。

删除 &lt;ui:define&gt; 标记应该可以让您的视图按预期工作。

更多信息:

【讨论】:

    【解决方案2】:

    如果本教程页面JSF Tools tutorial - Build a JSF 2.0 application有问题,请先尝试创建更简单的示例。

    为 JSF 自定义 Web 应用程序后,这意味着在 Eclipse 属性-> 选中复选框 JavaServer Faces... 等以包含 JSF 2.0 (Mojarra 2.0.2) 库并默认创建 faces-config.xml 文件,试试这个例子内部:JSF - template tags。如果可行,请将示例与您的代码进行比较。要启用-禁用 page1、page2 的某些部分,您可以看到子句 &lt;ui:define&gt; 的工作原理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-30
      • 2015-08-04
      • 2020-10-04
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多