Primefaces DataExporter exporterFunction

时间:2017-04-04 07:52:25

标签: jsf primefaces

寻求一些帮助。尝试在复杂的dataTable中使用此功能(最新的6.0版本),因为我们的一些列具有嵌套/多个元素,这似乎是控制导出输出的完美选择。文档声明它需要解析为一个MethodExpression,它接受一个列的实例。无论我尝试什么语法/方法实现,我总是会遇到错误。我目前仍然使用EL版本2.0(Weblogic 10.3.6 JSF 2.0),因此无法使用括号。

首先,我尝试了一个正常的valueExpression。这解析为firstName然后错误说它不是methodExpression

<p:column headerText="first" exportFunction="#{vo.firstName}">
                <h:panelGroup>
                    <!--Lots of other non exporter stuff here-->
                    <h:outputText value="#{vo.firstName}"/>    
                </h:panelGroup>
</p:column>

然后我试过了。同样的问题。

<p:column headerText="first" exportFunction="#{vo['firstName']}">
                <h:panelGroup>
                    <!--Lots of other non exporter stuff here-->
                    <h:outputText value="#{vo.firstName}"/>
                </h:panelGroup>
</p:column>

当我写一个实际的方法时:

public String showFirstName(Column column) {
        return "test";
    }

并使用如下:

<p:column headerText="first" exportFunction="#{bean.showFirstName}">
                <h:panelGroup>
                    <!--Lots of other non exporter stuff here-->
                    <h:outputText value="#{vo.firstName}"/>    
                </h:panelGroup>
            </p:column>

这是错误的

bean does not have the property 'showFirstName'

如果我在方法中添加括号:

<p:column headerText="first" exportFunction="#{bean.showFirstName()}">
                    <h:panelGroup>
                        <!--Lots of other non exporter stuff here-->
                        <h:outputText value="#{vo.firstName}"/>    
                    </h:panelGroup>
                </p:column>

我明白了:

Error Parsing: #{bean.showFirstName()}
Encountered "(" at line 1, column 26. Was expecting one of: "}" ... "." ... "[" ... ">" ... "gt" ... "<" ... "lt" ... ">=" ... "ge" ... "<=" ... "le" ... "==" ... "eq" ... "!=" ... "ne" ... "&&" ... "and" ... "||" ... "or" ... "*" ... "+" ... "-" ... "?" ... "/" ... "div" ... "%" ... "mod" ...

任何指导都非常感谢。我觉得我的问题是EL版本。

你认为拥有另一个ExportValue属性也是个好主意。这可能只是采用普通的valueExpression,并且使用起来非常简单。

0 个答案:

没有答案