0

我是 JSF 的新手。好吧,我正在尝试通过带有omnifaces的jsf传递诸如占位符之类的属性。但不知何故,这些属性无法识别。我错过了什么吗?

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。

提前致谢!

4

1 回答 1

2

您正在将旧版 JSP 与其后续的 Facelets (XHTML) 混合在一起。您所拥有的是一个 JSP 文件。自 JSF 2.0(2009 年 12 月发布)以来, JSP 已被弃用,Facelets (XHTML) 取得了成功。JSF 2.0 兼容库不再具有 JSP 标记库,并且与 JSP 不兼容。它们专为仅与 Facelets 一起使用而设计。

将您的重命名page.jsppage.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 的,我强烈建议检查两次。

也可以看看:

于 2013-05-08T12:44:11.997 回答