表达不适用于f:facet? JSF

时间:2010-06-04 14:56:29

标签: java jsf

此表达式无效: -

  <f:facet name="header">
      Search Results for #{SearchResultsBean.searchPhrase}
  </f:facet>

但是,如果我只是从f:facet外面删除该行,它就可以了。为什么会这样?这是预期的行为吗?在此先感谢:)

1 个答案:

答案 0 :(得分:2)

我不确定,但这可能与f:facet只能包含一个子项的事实有关。试试这个:

<f:facet name="header">
    <h:outputText value="Search Results for #{SearchResultsBean.searchPhrase}" />
</f:facet>

可能

<f:facet name="header">
    <h:panelGroup>Search Results for #{SearchResultsBean.searchPhrase}</h:panelGroup>
</f:facet>

<强>更新

我刚刚进行了本地测试,实际上,您的初始方法仅适用于此。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html 
    xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html">
    <h:head>
        <title>test</title>
    </h:head>
    <h:body>
        <h:dataTable value="#{bean.list}" var="item">
            <h:column>
                <f:facet name="header">
                    foo #{bean.text} bar
                </f:facet>
                #{item}
            </h:column>
        </h:dataTable>
    </h:body>
</html>

package mypackage;

import java.util.Arrays;
import java.util.List;

import javax.faces.bean.ManagedBean;

@ManagedBean
public class Bean {

    public List<String> getList() {
        return Arrays.asList("foo", "bar");
    }

    public String getText() { 
        return "text";
    }

}

产量

  

foo文字栏
  FOO
  吧

那是在Tomcat 6.0.20上使用Mojarra 2.0.2。你使用的是哪个版本?你的方法类似吗?