2010-03-11 68 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屬性完全是多餘的。擺脫它。

相關問題