【问题标题】:Tomcat: The requested resource () is not availableTomcat:请求的资源()不可用
【发布时间】:2012-12-16 15:00:40
【问题描述】:

我有 2 个页面:page1.xhtml、page2.xhtml。从第 1 页我转到第 2 页。 在 page2 我有:

<h:commandButton value="shuffle" action="#{bean.shuffle}" immediate="true"></h:commandButton> 

当我将页面放入 WEB-INF 并单击随机播放时出现错误:

    HTTP Status 404 - 

--------------------------------------------------------------------------------

type Status report

message 

description The requested resource () is not available.


--------------------------------------------------------------------------------

Apache Tomcat/7.0.14

但是当我将 page2 放在 WebContent 中时,一切正常。 我的 web.xml :

  <servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

为什么?

【问题讨论】:

  • 很难判断您是否不显示 bean.shuffle() 方法的代码,或者至少是它的输出。
  • @SJuan76:我想,没关系,它会输出一些没有在导航中使用的字符串,或者它可能是无效的,同样的结果。
  • @SJuan76: 问题是当页面在 WEB-INF 中时出现此错误
  • 你是什么意思“一些没有在导航中使用的字符串”。 bean 的结果将用于导航,无论是显式的还是隐式的。
  • @AramGevorgyan 你的问题似乎类似于stackoverflow.com/questions/9031811/…

标签: jsf jsf-2 web-inf


【解决方案1】:

/WEB-INF 中的资源不可公开访问。您需要将可公开访问的资源放在/WEB-INF 之外。 /WEB-INF 应该只用于配置文件、模板文件、包含文件、标记文件等,它们应该完全可以公开访问。

另见:

【讨论】:

  • 但是如果我不想让我的页面公开访问怎么办。如果我不希望通过在浏览器中直接键入页面 url 来访问我的页面,我希望页面只能从我的按钮导航。据我所知,WEB-INF 就是为此目的,至少在 JSP 中是这样。
  • 以及为什么我在页面上导航时没有出错,只有在该页面中单击 commandButon 后才会出错。
  • JSP 也不是这样。您可能将它与 servlet 混合在一起。 IE。您实际上是通过 URL 调用 servlet,而后者又加载(转发)JSP 以进行演示。如果您只想在回发时显示 JSF 页面,那么您应该有条件地呈现它,或者检查请求是否是回发。
  • 我不明白你的第二条评论。您了解在页面上导航(GET 请求)和提交表单(POST 请求)之间的区别吗?
猜你喜欢
  • 2017-01-23
  • 1970-01-01
  • 1970-01-01
  • 2019-11-18
  • 2010-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多