Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSF页面呈现错误:Faces上下文_Java_Jsf - Fatal编程技术网

Java JSF页面呈现错误:Faces上下文

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中,我使

当呈现我的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>