我是JSF的新手。好吧,我正在尝试通过带有omnifaces的jsf来传递属性,比如占位符。但不知何故,这些属性无法识别。我是不是遗漏了什么?
Faces在Java Server faces库中,我将Html5RenderKitFactory添加到Omnifaces.jar -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}">我用的是Tomcat7.0,MyFaces 2.1,Omnifaces 1.4。
提前感谢!
发布于 2013-05-08 20:44:12
您正在将遗留JSP与它的后继Facelets (XHTML)混合在一起。您在那里得到的是一个JSP文件。JSP是从JSF2.0(2009年12月发布)开始就被弃用的,并由Facelets (XHTML)继承。JSF2.0兼容库不再具有JSP标记库,并且与JSP不兼容。它们仅为与Facelets一起使用而设计。
将您的page.jsp重命名为page.xhtml,并删除所有<%@ %>内容。这样,PrimeFaces和OmniFaces就可以工作了,而且还可以使用新的JSF2.0特性,比如<h:head>和<f:ajax>。
我不确定您在学习JSF时使用了哪些资源,但是尝试使用JSP表明您正在阅读JSF 1.x目标资源。当您的意图是学习JSF 2.x时,这是不正确的,因为与JSF 1.x相比,JSF 2.x中发生了很多变化。我强烈建议检查两次资源是否以JSF2.x为目标。
另请参阅:
的链接
https://stackoverflow.com/questions/16439543
复制相似问题