冰面包括论证传递

时间:2011-03-18 15:07:50

标签: java jsf icefaces

我有两个xhtml-s,一个包括另一个。我的问题是参数传递对我不起作用:

<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE HTML>
    <html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:ui="http://java.sun.com/jsf/facelets"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:f="http://java.sun.com/jsf/core" 
        xmlns:ice="http://www.icesoft.com/icefaces/component" >

        <ui:include src="core-classic-layout.xhtml">
            <ui:param name="css-basename" value="core-classic"></ui:param>
            <ui:param name="css-themename" value="blue"></ui:param>
        </ui:include>
    </html>

和另一个core-classic-layout.xhtml是:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:ice="http://www.icesoft.com/icefaces/component" >

    <f:view locale="#{system.usedLocale}" >
        <ice:loadBundle
          basename="hu.gap.resources.messages"
          var="msgs"/>

    <head>
        <title>#{msgs['ApplFrmTitle']}</title>

        <ice:outputStyle href="./xmlhttp/css/rime/rime.css" />

        <ice:outputStyle href="./xmlhttp/css/core/#{css-basename}-layout.css" />
        <ice:outputStyle href="./xmlhttp/css/core/#{css-basename}-#{css-themename}.css" />
    </head>

我的问题是当我导航到包含第二个xhtml的第一个xhtml时,浏览器会尝试加载0-layout.css ant 0-0.css文件。

2 个答案:

答案 0 :(得分:0)

这将隐含地包含任何包含core-classic-layout.xhtml的布局。

<ice:outputStyle href="./xmlhttp/css/core/#{css-basename}-layout.css" />
<ice:outputStyle href="./xmlhttp/css/core/#{css-basename}-#{css-themename}.css" />

如果您不想加载布局,可以从core-classic-layout.xhtml中删除布局。

答案 1 :(得分:0)

“ - ”是一个算术运算符,所以当你写css-basename它是css minus basename时,它的计算结果为0.调用param cssBaseName将解决它。