Java 表达式在f:facet中不起作用?JSF

Java 表达式在f:facet中不起作用?JSF,java,jsf,Java,Jsf,此表达式不起作用:- <f:facet name="header"> Search Results for #{SearchResultsBean.searchPhrase} </f:facet> #{SearchResultsBean.SearchPhase}的搜索结果 但如果我只是从f:facet外部移除这条线,它就可以工作了。为什么会这样?这是故意的行为吗?提前感谢:)我不确定,但这可能与f:facet只能包含一个子元素有关。请尝试以下方法

此表达式不起作用:-

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

#{SearchResultsBean.SearchPhase}的搜索结果

但如果我只是从f:facet外部移除这条线,它就可以工作了。为什么会这样?这是故意的行为吗?提前感谢:)

我不确定,但这可能与
f:facet
只能包含一个子元素有关。请尝试以下方法:

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

或许


#{SearchResultsBean.SearchPhase}的搜索结果

更新

我刚刚做了一个本地测试,实际上,你最初的方法就在这里起作用

<?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>

测试
foo#{bean.text}条
#{item}

package-mypackage;
导入java.util.array;
导入java.util.List;
导入javax.faces.bean.ManagedBean;
@ManagedBean
公共类Bean{
公共列表getList(){
返回数组.asList(“foo”、“bar”);
}
公共字符串getText(){
返回“文本”;
}
}
屈服

foo文本栏
foo
酒吧


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

你好,巴卢斯克,幸运/不幸的是,我又在使用素面:p。对于h:dataTable,它可以正常工作,但是对于p:dataTable,它不能。我正在使用Mojarra 2.0.2,Glassfish V3。啊,很高兴知道。我正要在一个即将到来的项目中使用Primefaces。在以后的问题中,最好提及JSF impl的名称/版本以及使用的库。他们可能有自己的不协调之处。伟大的巴卢斯,Primefaces是非常好的,只是它有很多bug,而且还在进化。对于像我这样使用JSF的初学者,我希望你们能帮我一个忙。您已经发布了几篇关于JSF的文章。如果您可以创建一个简单的教程,使用JQUery或Yahoo Yui构建一个简单的组件,比如Primefaces,那就太棒了。我询问了Primefaces,他们告诉我旋转器、面板等很容易设计。如果你有时间写这样一篇文章,我将非常感谢你:)。如果你现在很忙的话,1个月后会怎么样?如果我对你要求太多,那么对不起,我心里有这个想法。我只等待EclipseHelios和Tomcat7发布,以便在本教程中获得对JavaEE6/Servlet3.0/JSF2.0的支持。那可能是7月/8月左右。太好了!哇,我急切地等待着:)。请让我知道你什么时候创建它。
<?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";
    }

}