jsf 链接到使用模板的视图
嗨,这是我的文件夹结构:
-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>
bean:
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>
Hi this is my folder structure:
-Web Pages
-WEB-INF
-template.xhtml
-gebruiker
-index.xhtml
-index.xhtml
and now I'm trying to link from index.html to gebruiker/index.xhtml
I do this as follows:
index.xhtml:
<h:form>
<h:commandButton value="gebruiker" action="#{labelController.gebruiker()}"/>
</h:form>
bean:
public String gebruiker(){
return "gebruiker/index";
}
And if I run this I get a IO.FileNotFoundException without any useful detail...
I know the problem is because the index.xhtml in gebruiker folder uses a template it looks like this:
<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>
When I use plain xhtml instead of composition tags, the mapping works.
Anyone knows why?
my 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>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
删除该时期。
否则它会寻找
/gebruiker/WEB-INF/template.xhtml
文件。作为第一个字符的句点代表“从当前文件夹开始”,而作为第一个字符的斜杠代表“从根目录开始”。与具体问题无关,您似乎正在实现页面到页面的导航。我强烈建议仅使用 GET 请求,而不是 POST 请求。这对搜索引擎优化和用户友好。
另请参阅:
Remove that period.
Otherwise it's looking for
/gebruiker/WEB-INF/template.xhtml
file. The period as 1st character stands for "start at current folder" while the slash as 1st character stands for "start at root".Unrelated to the concrete problem, you seem to be implementing page-to-page navigation. I strongly recommend to use just GET requests for this, not POST requests. That's more SEO and user friendly.
See also: