我正在使用eclipse juno,我正在尝试建立一个网站。我正在构建用户界面,我想使用JSF。运行以下代码,当我运行文件时,信息在屏幕上正确显示。
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="Stylesheets/flashcard.css" />
<title>Insert title here</title>
</head>
<body>
<f:view>
<h:form>
<h:commandButton value="Click"></h:commandButton>
</h:form>
</f:view>
但是我已经读过,编写这样的代码是更好的做法。此代码只显示一个空白页面。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="Stylesheets/flashcard.css" />
<title>Insert title here</title>
</head>
<body>
<f:view>
<h:form>
<h:commandButton value="Click"></h:commandButton>
</h:form>
</f:view>
</body>
</html>
区别很微妙,但在第二个文件中,如果有意义,我不使用jsp&lt;%@标签。在创建第二个文件时,我选择了JSF xhtml或其他东西。有人知道问题可能是什么吗?
答案 0 :(得分:2)
只需将物理视图文件的扩展名从some.jsp
重命名为some.xhtml
即可。您无需更改最初使用的URL中的扩展名。如果您按/some.jsf
打开它,则应该按/some.jsf
打开它。
请注意,我假设您使用的是JSF2而不是旧版JSF 1.x. Facef是JSF 1.x本身不支持的。另请注意,Facelets并非“只是一种更好的做法”,您必须在JSF2中使用它,因为不推荐使用JSP。