我是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。
提前致谢!
答案 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目标。