使用omnifaces时,占位符无法识别

时间:2013-05-08 11:31:13

标签: jsf omnifaces

我是JSF的新手。好吧,我试图通过jsf和omnifaces传递像占位符这样的属性。但不知何故,这些属性无法识别。我错过了什么吗?

Omnifaces.jar位于Java Server Faces库中,我将Html5RenderKitFactory添加到了faces-config.xml。

以下是JSP文件的内容:

<%@ 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>
<html 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" xmlns:o="http://omnifaces.org/ui">
<head>
<title>Login</title>
</head>
<body>
    <div class="container">
        <f:view>
            <f:loadBundle basename="de.jsf.messages" var="msg" />

            <h:form styleClass="form-signin" o:autocomplete="off">
                <h2 class="form-signin-heading">Please sign in</h2>
                <h:panelGrid columns="2">
                    <h:inputText value="#{user.name}" styleClass="input-block-level" placeholder="#{msg.user}">

我正在使用Tomcat 7.0,MyFaces 2.1,Omnifaces 1.4。

提前致谢!

1 个答案:

答案 0 :(得分:2)

您将遗留JSP与其后续Facelets(XHTML)混合在一起。你有什么JSP文件。自JSF 2.0(2009年12月发布)以来,JSP被弃用,并由Facelets(XHTML)继承。 JSF 2.0兼容库不再具有JSP标记库,并且与JSP不兼容。它们仅适用于Facelets。

将您的page.jsp重命名为page.xhtml并删除所有<%@ %>项内容。这样PrimeFaces和OmniFaces就可以工作了,你也可以使用新的JSF 2.0强大功能,例如<h:head><f:ajax>

我不确定在学习JSF时使用了哪些资源,但尝试使用JSP表明您正在阅读JSF 1.x目标资源。当你的目的是学习JSF 2.x时,这是不正确的,与JSF 1.x相比,JSF 2.x中的许多事情都发生了变化。我强烈建议检查两次资源是否为JSF 2.x目标。

另见: