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

标签 java jsf

这个表达式不起作用:-

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

但是如果我只是从 f:facet 外部删除该行,它就可以工作。为什么会发生这种情况?这是预期的行为吗?预先感谢:)

最佳答案

我不确定,但这可能与 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 text bar
foo
bar

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

关于java - 表达式在 f :facet? JSF 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2975268/

相关文章:

java - 如何将选项卡放置在布局的顶部?

java - 直接 Java 和 Grails 之间的反射差异

java - 如何检查PC或笔记本电脑是否安装了JAI和Java3D?

具有属性值表达式语言的 JSF 2 自定义组件不会触发属性 setter

jsf - JSF2/Facelets 中的私有(private)/作用域变量 <ui :component>?

spring - ASP.NET => Spring Web Flow : How do I get up to speed fast?

java - 在线程之间共享 Kafka 生产者

与自定义密码套件的 Java HTTPS 连接

java - 无法在 PrimeFaces DataTable 上进行过滤

java - faces-config.xml.jsfdia 文件有什么用?