嗨,这是我的文件夹结构:
-Web Pages
-WEB-INF
-template.xhtml
-gebruiker
-index.xhtml
-index.xhtml
现在我正在尝试从index.html链接到gebruiker / index.xhtml
我这样做如下:
的index.xhtml:
<h:form>
<h:commandButton value="gebruiker" action="#{labelController.gebruiker()}"/>
</h:form>
豆:
public String gebruiker(){
return "gebruiker/index";
}
如果我运行这个,我得到一个没有任何有用细节的IO.FileNotFoundException ......
我知道问题是因为gebruiker文件夹中的index.xhtml使用的模板如下所示:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
template="./WEB-INF/template.xhtml">
<ui:define name="title">
Project Label Configurator
</ui:define>
<ui:define name="body">
GEBRUIKER PAGINA
</ui:define>
</ui:composition>
当我使用普通的xhtml而不是组合标签时,映射有效。
任何人都知道为什么?
我的web.xml:
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
答案 0 :(得分:2)
template="./WEB-INF/template.xhtml"
删除那段时间。
template="/WEB-INF/template.xhtml"
否则它正在寻找/gebruiker/WEB-INF/template.xhtml
文件。作为第1个字符的句点代表“从当前文件夹开始”,而作为第1个字符的斜杠代表“从根目录开始”。
无关到具体问题,您似乎正在实施页面到页面的导航。我强烈建议只使用GET请求,而不是POST请求。这是更多的SEO和用户友好。
<h:link value="gebruiker" outcome="gebruiker/index" />