当我<h:outputText value="Login Name"/>
在JSP中编写标记时,我收到以下异常消息:
Cannot find FacesContext
没有它,我的JSP工作正常.这是我的JSP:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<body>
Login Name <input type="text" value=""/><br>
<h:outputText value="Login Name"/>
Password<input type="password" value=""/><br>
<input type="submit" value="Login">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
您的代码有两个缺陷:
此异常的根本原因是,你忘了通过将请求传递url-pattern
的FacesServlet
作为definied web.xml
.如果JSP页面,例如命名page.jsp
和url-pattern
的FacesServlet
是,例如*.jsf
,那么你需要调用它http://example.com/context/page.jsf
来代替.jsp
.这样FacesServlet
将调用并创建FacesContext
.否则页面中的JSF组件会抱怨FacesContext
无法找到,并且您将面临此特定异常.
该<f:view>
丢失的页面.将整个包裹<html>
在里面.例如
<%@ page pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<!doctype ... >
<f:view>
<html>
...
</html>
</f:view>
Run Code Online (Sandbox Code Playgroud)顺便说一句,那个import
属性<%@page>
是完全多余的.摆脱它.
归档时间: |
|
查看次数: |
8352 次 |
最近记录: |