2010-03-11 38 views
0

当我写在我的JSP标签<h:outputText value="Login Name"/>,我得到下面的异常消息:JSF的RuntimeException:无法找到的FacesContext

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> 
+0

这里没有问题,几乎没有有用的文字或线索。代码呕吐。 – abelenky 2010-03-11 17:23:22

+0

@BalusC:恕我直言,不好的标题让他感到沮丧 – Roman 2010-03-11 17:25:40

+0

@罗曼:代码最初没有代码标签,并且使其无法阅读。 Sunny Mate根本没有注意格式。 Skaffman修复了它。检查问题修订历史的底部:http://stackoverflow.com/posts/2424455/revisions – BalusC 2010-03-11 17:28:57

回答

5

有两个缺陷在代码:

  1. 此异常的根本原因是,你忘了在definied穿过FacesServleturl-pattern请求web.xml。如果JSP页面例如被命名为page.jsp并且FacesServleturl-pattern是例如*.jsf,则您需要通过http://example.com/context/page.jsf而不是.jsp来调用它。这样将调用FacesServlet并创建FacesContext。否则,页面中的JSF组件会抱怨找不到FacesContext,您将面临此特定异常。

  2. 该页面缺少<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> 
    

顺便说一句,这在<%@page>import属性完全是多余的。摆脱它。

相关问题