如何在EclipseJuno(而不是jsp)中使用facelets



我正在使用eclipsejuno,并试图建立一个网站。我正在构建用户界面,我想使用JSF。运行以下代码,当我运行该文件时,信息将正确显示在屏幕上。

<%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <link rel="stylesheet" type="text/css" href="Stylesheets/flashcard.css" />
<title>Insert title here</title>
</head>
<body>
<f:view>
        <h:form>
        <h:commandButton value="Click"></h:commandButton>
        </h:form>
</f:view>

然而,我读到过这样写代码是更好的做法。此代码只显示一个空白页。

<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:h="http://java.sun.com/jsf/html">
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
         <link rel="stylesheet" type="text/css" href="Stylesheets/flashcard.css" />
        <title>Insert title here</title>
        </head>
        <body>
        <f:view>
                <h:form>
                <h:commandButton value="Click"></h:commandButton>
                </h:form>
        </f:view>
    </body>
    </html>

区别很微妙,但在第二个文件中,我没有使用jsp<%@标记,如果这有意义的话。在创建第二个文件时,我选择了JSFxhtml或其他什么。有人知道问题出在哪里吗?

只需将物理视图文件的扩展名从some.jsp重命名为some.xhtml。您不需要更改最初使用的URL中的扩展名。如果你用/some.jsf打开它,那么你应该继续用/some.jsf打开它。

请注意,我假设您使用的是JSF2,而不是遗留的JSF 1.x。Facelets不是JSF 1.x本机支持的。还要注意,Facelets并不是"一种更好的做法",您必须在JSF2中使用它,因为JSP已被弃用。

另请参阅:

  • 我们的JSF wiki页面-包含一个Hello World
  • JSF Facelets:有时我看到URL是.JSF,有时是.xhtml。为什么?-可能会消除对扩展的困惑

相关内容

  • 没有找到相关文章

最新更新