从JSF页面中删除附加的标题

时间:2012-01-02 12:13:16

标签: java jsf facelets portlet jsf-1.2

我写了.xhtml页面,其中包含以下代码:

<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <p>P</p>
    </body>
</html>

我在新窗口中使用JavaScript打开此页面。

不幸的是它显示为

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    </head>
    <div id="">
        <html>
            <head>
                <title>Test</title>
            </head>
            <body>
                <p>P</p>
            </body>
        </html>
    </div>
</html>

这当然是无效的HTML。如何删除附加的标签?为什么他们首先被创造出来?

我正在使用JSF 1.2,Facelets,Portlet API 2.0和JBoss PortletBridge。

3 个答案:

答案 0 :(得分:0)

尝试使用jsf头部和身体组件:

<html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:f="http://java.sun.com/jsf/core">
    <f:view>
        <h:head>
            <title>Test</title>
        </h:head>
        <h:body>
            <p>P</p>
        </h:body>
    </f:view>
    </html>

答案 1 :(得分:0)

您应该使用包含组件的模板,然后在您的页面中使用

示例 模板

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
<h:head>
<title><ui:insert name="title">Default title</ui:insert></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</h:head>
<h:body dir="ltr">
<ui:insert name="content" />
</h:body>
</html>

和.xhtml页面

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<f:view xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
>
<html>
    <head></head>
    <body>
<ui:composition template="${empty param.sl ? '/includes/template.xhtml' : '/includes/templatepopup.xhtml'}">
    <ui:define name="title">${msg.removeapplicant_title}</ui:define>
<ui:define name="content">
        <f:view>


put your htlml here

</f:view>
    </ui:define>
</ui:composition>
</body></html>
</f:view>

答案 2 :(得分:0)

我现在为弹出窗口写了一个HttpServlet来规避这个问题。由于它转发的文件以*.jsp结尾,因此它不受FacesServlet的影响,也不会附加奇怪的标题。