templates - 模板文本正文中不允许 JSF 和 EJB #{...}

标签 templates jsf datagrid ejb

我添加了 2 个托管 Bean: ProductController 有 2 个方法:

ist<ProdusDTO> getList()
String update()

和 ProductDTO,用于实体产品。

index.jsp

<%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
<h:dataTable value="#{ProductController.getList()}" var="p">
        <h:column>
            <f:facet name="header">Description</f:facet> #{p.description}
        </h:column>
        <h:column>
            <f:facet name="header">Image</f:facet> #{p.image}
        </h:column>
    </h:dataTable>

    <h2>Adds</h2>
    <h:form>
        <h:panelGrid columns="3">
            Description: <h:inputText value="#{produsDTO.description}" size="100" required="true"></h:inputText>
            Image: <h:inputText value="#{productDTO.image}" size="100" required="true" label="Image"> </h:inputText>
        </h:panelGrid>
        <h:commandButton value="Submit" action="#{ProductController.update()}" />
    </h:form>

当我运行 jsp 文件时,出现此错误:

PWC6228: #{...} not allowed in a template text body.

在构建路径中,我包含了 jsf-api.jar 和 jsf-impl.jar (mojjara 1.2_15)

为什么我无法为 dataTable 组件指定 value 属性的方法?

谢谢。

最佳答案

统一表达语言deferred expressions仅允许在支持它们的自定义标记属性中使用(请参阅 JSP 2.1 了解 UEL 支持)。

这是使用 JSP 和 JSF 的限制。延迟表达式必须与控制标记一起使用(例如 outputText 。)

此问题已通过 Facelets View 技术得到解决;如果可能的话请考虑升级。

关于templates - 模板文本正文中不允许 JSF 和 EJB #{...},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8480187/

相关文章:

jsf - Primefaces 数据表的列标题中的工具提示

WPF - 在具有自定义复选框样式的 DataGrid 中无法使用 IsReadOnly

c# - 使用语句实现与 C# 等效的 C++

jsf - 更改 p :graphicImage in p:dataExporter 的导出值

java - 如何将列减少一些可变量?

c# - 如何禁用新行的特定 DataGrid 单元格

javascript - 在网格 Ext JS 4 中重新排序行

c++ - 将非模板基类向下转换为模板化派生类 : is it possible?

templates - 模板对象字段强制执行

c++ - 给定 std::tuple<T...> 时可变参数模板类的实例化?