gpt4 book ai didi

eclipse - JSP:include 没有呈现包含的文件

转载 作者:行者123 更新时间:2023-11-28 22:23:26 27 4
gpt4 key购买 nike

我刚刚创建了一个新的 IceFaces 应用程序,我试图在所有页面中包含一个导航栏。当我使用 jsp:directive.include 标签时,文件被包含,但是当我使用 jsp:include 时,它似乎没有被加载。事实上,当我在浏览器中检查 HTML 源代码时,好像包含的文件完全是空的。我不想使用 jsp:directive.include,因为它不会自动显示对包含文件的任何更新。

我的环境:Eclipse 3.5、Tomcat 6、JSF 1.2、IceFaces 1.8。

重现问题的步骤和代码片段:

  1. 使用以下选项创建一个新的动态 Web 项目:目标运行时:Apache tomcat v6.0动态网页模块版本:2.5配置:ICEfaces项目

  2. 创建一个新的 ICEFaces JSPX 文件 -- 主文件。一些代码:

    <jsp:directive.page contentType="text/html;charset=ISO-8859-1" />


    <f:view >
    <ice:outputDeclaration doctypeRoot="HTML"
    doctypePublic="-//W3C//DTD HTML 4.01 Transitional//EN"
    doctypeSystem="http://www.w3.org/TR/html4/loose.dtd" />
    <html>
    <head>
    <title>test file</title>
    <link rel="stylesheet" type="text/css"
    href="./xmlhttp/css/rime/rime.css" />
    </head>
    <body>
    <jsp:directive.include file="./vertical_navigation.jsp" /> <!-- working -->
    <jsp:include page="./vertical_navigation.jsp" /> <!-- not working, no error though -->
    </body>
    </html>
    </f:view>

  3. 创建要包含的文件,也作为新的 ICEFaces JSPX 文件。简化代码:

        <ice:form>
    <ice:panelGrid columns="1" width="152">
    <ice:graphicImage url="./img/image.jpg"></ice:graphicImage>
    <ice:panelCollapsible expanded="true">
    <f:facet name="header">
    <ice:panelGroup>
    <ice:outputText value="Customer"/>
    </ice:panelGroup>
    </f:facet>
    <ice:panelGrid columns="1">
    <ice:commandLink action="customer"><ice:outputText value="Customer name" /></ice:commandLink>
    </ice:panelGrid>
    </ice:panelCollapsible>
    </ice:panelGrid>
    </ice:form>
    </body>
    </html>
    </f:view>

一些说明:

  1. 我是 JSF 的新手,如果有任何明显的错误,请原谅我。
  2. 在主文件(第一个)中我没有同时使用这两个标签。我将两者都粘贴在这里只是为了表明我正在尝试这两种选择。
  3. 我将这两个文件都创建为“ICEFaces JSPX 文件”,但第二个文件的扩展名为 .jsp。
  4. 当我使用directive.include 标签时,包含的文件被加载。但如果我更改它,它不会自动重新发布。

最佳答案

首先,您必须分离和区分几种技术:

  • JSP 是一种基于 Java 的 View 技术,允许您在其中编写 HTML/CSS/JS 并使用标签库调用后端 Java 代码和/或控制输出流。

  • JSPX 与JSP 相同,但强制您以XML 格式编写代码。 JSP 特定的标签被 XML 格式的标签所取代。 JSPX 也称为“JSP 文档”。 Here是概述标签差异的基本教程。

  • JSF 是一个基于组件的 MVC 框架,它提供输出 HTML/CSS/JS 的标签库风格的组件。

您不能使用 <jsp:include>在 JSPX 页面中。您必须将 JSPX 页面转换为 JSP 页面。您需要重命名文件 .jspx.jsp并用 JSP 标签替换 JSPX 特定标签。下面是 JSP 与 JSF/IceFaces 的启动示例:

<%@ page pageEncoding="ISO-8859-1" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://www.icesoft.com/icefaces/component" prefix="ice"%>
<!DOCTYPE html>
<f:view>
<html lang="en">
<head>
<title>Title</title>
</head>
<body>
<jsp:include page="include.jsp" />
</body>
</html>
</f:view>

关于eclipse - JSP:include 没有呈现包含的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3849515/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com