问题与h:表单 - 通过h提交时返回404:commandbutton
我正在JSF(2.2)应用程序上工作。我看到一些奇怪的行为与h:form和h:commandbutton一起工作。问题与h:表单 - 通过h提交时返回404:commandbutton
问题 -我在说searchRecord.xhtml下面的代码 -
<h:form>
<!-- Input fields -->
<h:commandbutton type="submit" value="Search" title="Search" action="#{bean.search}"/>
</h:form>
的问题,我面对的是当我点击提交按钮,就说明不是URL指向当前发现的404页页。它没有执行指定的bean操作。
我试图调试这个。当表单被转换为HTML时,表单将通过method =“post”action =“/ MyApplication/WEB-INF/searchRecord.xhtml”(看起来是正确的行为)生成。尽管如此,点击按钮,我越来越404。
任何人都可以请帮助我搞清楚是什么问题?我浪费了我的周末计算出来,但徒劳无益。
编辑 - IDE - Eclipse的 JSF版本 - 钻嘴鱼科2.2.8我的项目 目录结构 -
项目
- Java Resource
----src -> contains java files
- WebContent
---- META-INF
---- WEB-INF
------facelets -> contains *.xhtml files
------resources -> contains img, css and JS files in respective folders
------commonLayout.xhtml
- index.xhtml
我访问使用launchHandler的servlet这验证我的应用程序请求参数并转发到searchRecord.xhtml。
我能够看到searchRecord.xhtml。但现在当我点击,我越来越404.
作为一个标准,我们需要使用servlet,然后相应地转发。
我发现我的问题的解决方案。这里的问题是错误的目录结构(不知何故,我错过了/ WEB-INF下的资源无法通过URL访问的问题,感谢@BalusC指出了这一点!!!)。基于上后下的答案 -
JSF files inside WEB-INF directory, how do I access them?
Which XHTML files do I need to put in /WEB-INF and which not?
我改组我的项目如下 -
My Application
|- Java Resource
|----src -> contains java files
|- WebContent
|---- META-INF
|---- Resources -> contains img, css and JS files in respective folders
|---- JSF
| |--Contains client .xhtml files
|---- WEB-INF
| |--template -> contains the master templates for my application
| |--web.xml
|---- index.xhtml
现在预期并显示所有网页的导航正在发生的事情。
我也打算使用JSF 2.2配置参数并将资源放在WEB-INF下。
什么是写在你的bean.search方法? faces-config.xml中定义的导航规则是否正确? – AswathyPrasad
'type =“submit”'是多余的......(如果我没有记错的话,它甚至可能会导致问题) – Kukeltje
*“这看起来是正确的行为”*不,它不是。尝试在浏览器的地址栏中输入该网址。尝试以这种方式访问任何/ WEB-INF文件。包括web.xml。你会发现这是不可能的。并非没有理由。 – BalusC