Java JSF页面呈现错误:Faces上下文
当呈现我的JSF页面时,我会收到以下消息。页面呈现正确,但在控制台中,下面的消息会重复多次Java JSF页面呈现错误:Faces上下文,java,jsf,Java,Jsf,当呈现我的JSF页面时,我会收到以下消息。页面呈现正确,但在控制台中,下面的消息会重复多次 INFO: ERROR: Unable to get Faces Context for session variable: localeBean 11:54:27090信息[STDOUT]2009年11月24日11:54:27 AM com.web.util.faces.UtilFacesFuncs日志 信息:很可能是您从非Faces(即Servlet)上下文请求了Faces对象 在我的JSF中,我使
INFO: ERROR: Unable to get Faces Context for session variable: localeBean
11:54:27090信息[STDOUT]2009年11月24日11:54:27 AM com.web.util.faces.UtilFacesFuncs日志
信息:很可能是您从非Faces(即Servlet)上下文请求了Faces对象
在我的JSF中,我使用localebean,如下所示:
<f:view locale="#{localeBean.userLocaleLoggedIn}">
在faces配置文件中,我将其定义如下:
<managed-bean>
<description>Locale Bean</description>
<managed-bean-name>localeBean</managed-bean-name>
<managed-bean-class>com.mg.faces.LocaleBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
语言环境Bean
当地人
com.mg.faces.LocaleBean
一场
在我的类LocaleBean中,有一个方法getUserLocaleLoggedIn(),它是在执行JSF页面时执行的代码:
<f:view locale="#{localeBean.userLocaleLoggedIn}">
在调试我的jsp时,我可以看到方法被调用,一切都很好,我一直调试我的jsp,直到它创建页脚,就在它呈现给浏览器时,这些错误被重复抛出大约20多次。它只发生在tihsjsp上,因为它是我添加的一个新的jsp。我试着和现有的jso相比,我看不出有什么不同,有人知道我应该注意什么吗
非常感谢您的帮助
谢谢
关于此错误基本上意味着请求URL(您在浏览器地址栏中看到的URL,或用于包含/发送所需页面的URL)与
FacesServlet
映射的URL模式
不匹配,如web.xml
中所定义。您需要让请求URL与之匹配才能调用FacesServlet
例如,如果是以下后缀模式(扩展映射):
*.jsf
然后,您需要确保您的请求URL与之匹配,即使用而不是
或者,如果是以下前缀模式(目录映射):
/faces/*
然后,您需要确保您的请求URL看起来像而不是
编辑:虽然我不会对
FacesServlet
使用多个url模式
,只需坚持使用一个,但映射看起来很好。毕竟,错误消息来自com.web.util.faces.UtilFacesFuncs
。这看起来像是一个土生土长的实用程序类。那班学生到底在干什么?例如,它试图访问请求中的FacesContext
太早或太迟,这不是该实用程序类中的一个错误吗?很抱歉,我上面添加的评论没有正确显示,下面是我在web.xml中的内容:
我使用的url也是http://localhost.com/context/register/mypage.htm
我在文件夹注册表下有这些jsp。我可以从register文件夹调用其他jsp
这个错误不会出现。。。。我添加的这个特定jsp就是这样
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
Facesservlet
/面孔/*
Facesservlet
*.面孔
Facesservlet
*.jsf
Facesservlet
*.htm
我正在尝试添加我的完整映射,但是按照代码标记在这里的工作方式,它不会出现,因为hte映射有标记。。。我尝试了提供的blockquotes,但此编辑器仍然无法正确显示我的映射,抱歉
你知道我应该如何调用我的url吗。谢谢。在my web.xml中,我有以下映射:Faces Servlet/Faces/*Faces Servlet*.Faces Faces Servlet*.jsf Faces Servlet*.htm答案的顺序基于投票,所以,请以后编辑这个问题。这个问题已经解决了,在引用这个bean之前,需要调用一些特定于页面的函数,从而消除了错误。
<url-pattern>/faces/*</url-pattern>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>