当我尝试运行我的jsf文件时,我收到此警告:
12:27:49,357 WARNING [javax.enterprise.resource.webcontainer.jsf.renderkit] (http-localhost- 127.0.0.1-8080-7) JSF1090: Navigation case not resolved for component j_idt24.
为了解决这个问题,我需要找出哪一个是j_idt24组件,而且我不知道该怎么做,所以我想我可能会在生成的servlet文件中找到它(我是对的?),那么在哪里可以找到生成的Servlet文件,或者哪种方式更好?
-Java
答案 0 :(得分:3)
您将JSF与JSP混淆。 JSF是一个MVC框架,可以为“V”部分使用JSP或Facelets或完全不同的东西。
您所说的内容适用于JSP,但不一定适用于JSF。在JSF2中,JSP由Facelets继承,它被编译为XML文档,而不是Servlet类。您还将“JSF源代码”与“JSF组件树”混淆。这些自动生成的ID在Facelets的编译XML文档和JSP的Servlet类中不可见。它们仅在视图呈现期间基于服务器内存中的JSF组件树生成HTML输出期间创建(在视图构建时,JSF组件树依次基于该XML文档或Servlet类创建)。
回到您的具体问题,当您在outcome
或<h:link>
组件中指定无效的<h:button>
时,会出现此警告。让naildown成为罪魁祸首的最简单方法是为每个<h:link>
和<h:button>
提供一个固定的ID,这样JSF就不需要自动生成它们,这样你就可以右键单击查看源在浏览器中执行 Ctrl + F 。
<h:link id="fooLink" value="Foo" outcome="foo" />
另一种方法是添加<ui:debug>
并浏览JSF组件树,该树在调试弹出窗口中显示为“纯文本”,然后将找到的组件引用到JSF(XHTML)源代码中的声明。