0

PrimeFaces 3.2 を使用しようとしています。Eclipse Indigo SR2 を使用しています。PrimeFaces タグを使用して JSP ページを作成しています。標準<h:commandButton>は機能していますが、機能してい<p:commandButton>ません。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html  xmlns:p="http://primefaces.org/ui">
<head>

</head>
<body>
<f:view>
        <h:form>
        <h:commandButton value="Click"></h:commandButton>
        <p:commandButton value="shfgldjfkl"></p:commandButton>
        </h:form>
</f:view>
</body>
</html>

私の出力はこれです:

ここに画像の説明を入力

Indigo Service Release 2 で JSF XHTML ページを取得すると、コードが実行されず、ページが空白になります。

PrimeFaces 3.2 はどのように使用できますか?

4

2 に答える 2

2

JSP はJSF 2.0 以降非推奨となり、Facelets に引き継がれています。PrimeFaces >2.x などのすべての JSF 2.0 互換コンポーネント ライブラリには、JSP 用の taglibs はありませんが、Facelets 用のみです。

JSP ファイルに配置した<html xmlns:p="http://primefaces.org/ui">は、JSP によってまったく認識されません。XML 名前空間の JSF タグライブラリは、Facelets でのみ機能します。

JSPを忘れてください。Faceletsに集中してください。

空白ページの Facelets の問題に戻ります。<h:head>代わりに<head>(そうしないと、JSF/PrimeFaces は必要な CSS/JS ファイルを自動インクルードできません)、リクエスト URL が次の URL パターンと一致することを確認してください。で定義されているとおりFacesServletですweb.xml(そうFacesServletしないと、まったく呼び出されないため、JSF を HTML に変換できません。右クリックして、Web ブラウザーでソースを表示することでこれを確認できます)。

Facelets の完全なスニペットは次の/demo.xhtmlとおりです。

<!DOCTYPE html>
<html lang="en"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>PrimeFaces demo</title>
    </h:head>
    <h:body>
        <h:form>
            <p:commandButton value="submit" />
        </h:form>
    </h:body>
</html>

FacesServletが次の URL パターンにweb.xmlマッピングされている場合*.xhtml:

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

*.jsf次に、/faces/*、 などの仮想 URL をいじることなく、URL とまったく同じファイル名で開くことができます。

http://localhost:8080/contextname/demo.xhtml

于 2012-10-18T12:28:20.197 に答える
0

個人的には JSF または facelet を使用する必要があると思います。primeface で JSP を実装しようとは決して思いません。ところで、JSF または facelet で同じ結果を達成できるのになぜ JSP を実装するのかというと、JSF 2.0 に進むことをお勧めします。

于 2012-11-09T01:54:49.723 に答える