JSF页面呈现错误:面向上下文
当我的JSF页面被渲染时,我收到以下消息。 页面正确呈现,但在控制台中,下面的消息重复多次…
INFO: ERROR: Unable to get Faces Context for session variable: localeBean
11:54:27,090 INFO [STDOUT] 2009年11月24日上午11:54:27 com.web.util.faces.UtilFacesFuncs log INFO:很可能,您已经从NON-Faces(即Servlet)请求了Faces对象上下文。
在我的JSF中,我使用localebean如下:
在faces-config文件中,我将其定义如下:
Locale Bean localeBean com.mg.faces.LocaleBean session
在我的类LocaleBean中有一个方法getUserLocaleLoggedIn(),它是在JSF页面执行时执行的代码:
在调试我的jsp时,我可以看到被调用的方法,并且每次都很好,我一直调试我的jsp,直到它创建页脚,就在它渲染到浏览器时,这些错误被重复抛出大约20次。 它只发生在tihs jsp上,因为它是我添加的一个新的。 我尝试与现有的jso进行比较,我看不出有什么不同,有谁知道我不想要的东西?
任何帮助非常感谢。
谢谢。
问候
抱歉,我在上面添加的评论没有说得对,这是我在web.xml中的内容:我使用的url是http://localhost.com/context/register/mypage.htm
我有这些jsp下的文件夹注册。 我可以从寄存器文件夹中调用其他jsp,但是这个错误没有出现….就像我添加的这个特定的jsp一样。
Faces Servlet /faces/* Faces Servlet *.faces Faces Servlet *.jsf Faces Servlet *.htm
我试图添加我的完整映射,但代码标签在这里工作的方式,它没有遇到,因为hte映射有标签…我尝试提供blockquotes,但仍然这个编辑器无法正确显示我的映射,道歉!
知道我应该如何调用我的url。 谢谢。
此错误基本上意味着请求URL(您在浏览器地址栏中看到的URL,或用于包含/分派所需页面的url-pattern
与FacesServlet
映射的url-pattern
不匹配web.xml
。 您需要让请求URL与其匹配才能调用FacesServlet
。
因此,如果它是例如以下后缀模式(扩展映射):
*.jsf
然后,您需要确保您的请求url与之匹配,即使用http://example.com/context/page.jsf而不是http://example.com/context/page.jsp 。
或者,如果它是例如以下前缀模式(目录映射):
/faces/*
然后,您需要确保您的请求url类似于http://example.com/context/faces/page.jsp而不是http://example.com/context/page.jsp 。
编辑 :虽然我不会为FacesServlet
使用多个url-pattern
,只是坚持一个,但映射看起来很好。 毕竟,错误消息来自com.web.util.faces.UtilFacesFuncs
。 这看起来像一个本土的实用工具类。 这课正在做什么? 是不是只是该实用程序类中的一个错误,例如它试图在请求中过早或过晚访问FacesContext
?