我使用jsf facelets开发了web应用程序,我为ui标题,菜单,内容和页脚配置了一个facelet。但问题是我登录时在标题中使用了一个图像,当我点击菜单中的链接并重定向到下一页时图像不显示,只有在登录时显示,否则它将不会显示
这是我的facelet模板xhtml页面
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<f:view contentType="text/html">
<h:head>
<f:facet name="first">
<meta content='text/html; charset=UTF-8' http-equiv="Content-Type"/>
<title>PrimeFaces</title>
</f:facet>
</h:head>
<h:body>
<p:layout fullPage="true">
<p:layoutUnit position="north" size="100" resizable="true" closable="true" collapsible="true">
<p:graphicImage value="logo.gif" />
</p:layoutUnit>
<p:layoutUnit position="south" size="100" closable="true" collapsible="true">
Footer
</p:layoutUnit>
<p:layoutUnit position="west" size="180" header="Menu" collapsible="true">
<ui:insert name="leftmenu">
<div>
<ui:include src="leftmenu.xhtml" />
</div>
</ui:insert>
</p:layoutUnit>
<p:layoutUnit position="center">
<ui:insert name="content">
Select one of the links on the left to proceed.
</ui:insert>
</p:layoutUnit>
</p:layout>
</h:body>
</f:view>
</html>
我的左侧菜单xhtml页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head></h:head>
<body>
<h:form>
<h:link value="Home" outcome="homePage"></h:link>
<br />
<h:link value="Create User" outcome="addUser"></h:link>
<br />
<h:link value="Change Password" outcome="addUser"></h:link>
<br />
<h:link value="Allocation Tan" outcome="addUser"></h:link>
<br />
<h:link value="Batch Upload" outcome="addUser"></h:link>
<br />
<h:link value="XML Validation" outcome="addUser"></h:link>
<br />
<h:link value="Logout" outcome="login"></h:link>
</h:form>
</body>
</html>
我的添加用户xhtml页面
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<ui:composition template="/templates/template.xhtml">
<ui:define name="content">
<h:form id="form">
<p:panel id="panel" header="New Person">
<p:messages id="msgs"/>
<p:commandButton id="btn" value="Save" update="panel" actionListener="#{user.save}"/>
</p:panel>
</h:form>
</ui:define>
</ui:composition>
</h:body>
</html>
任何人都可以帮我解决这个问题
答案 0 :(得分:0)
由于您的其他模板看起来像是在另一个目录中,因此您只需将图像的路径更改为绝对路径即可。您甚至可以验证您的浏览器在验证呈现页面的源代码时是否尝试获取此图像。
这应该可以解决问题:
<p:graphicImage value="/logo.gif" />