我第一次尝试使用 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}" />
我收到了 Exception :
[#|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: Servlet jsp 的 Servlet.service() 抛出异常 org.apache.jasper.JasperException: /b.jsp(14,25) PWC6228: #{...} not allowed in a template text body。在 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 模板,它可以工作。
那么如何将 JSF 与 xhtml 模板一起使用呢?
它使用:
<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 %>
指令?
感谢您的帮助