初めて JSF を使用しようとしていますが、JSF の JSP タグライブラリがわかりません。
Eclipse (Indigo) で新しい JSP ファイルを作成するときに、いくつかのテンプレートから選択できます。
- 新しい JavaServer Faces (JSF) ページ (html)
- 新しい JavaServer Faces (JSF) ページ (xhtml)
- 新しい JavaServer Faces (JSF) ページ (xhtml、xml 構文)
- ...
html テンプレートは使用します<%@ taglib prefix="..." uri="..." %>
が、xhtml テンプレートは を使用し<html xmlns:...="...">
ます。
xhtmlテンプレートを選択すると、JSF taglibがサポートされていないようです。使用する<h:outputText value="#{bean.beanMethod}" />
と例外が発生したためです。
[#|2012-10-04T10:51:45.734+0200|警告|glassfish3.1.1|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=39;_ThreadName=Thread-2;| ApplicationDispatcher[/testjsf] PWC1231: サーブレット jsp の Servlet.service() が例外 org.apache.jasper.JasperException をスローしました: /b.jsp(14,25) PWC6228: #{...} はテンプレート テキスト本文では許可されていません。org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:81) で org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:376) で org.apache.jasper.compiler.ErrorDispatcher.jspError (ErrorDispatcher.java:188) で org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:755) で org.apache.jasper.compiler.Node$ELExpression.accept(Node.java:947) でorg.apache.jasper.compiler.Node$Nodes.visit(Node.java:2297) org.
html テンプレートを使用すると、機能します。
では、xhtml テンプレートで JSF を使用するにはどうすればよいでしょうか。
を使用して動作します:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
と
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
一緒に、しかし私は宣言がディレクティブxmlns
を置き換えると信じていましたか?<%@ taglib %>
ご協力ありがとうございました