java - Xpages:在 EL 中的 CacheBean 中调用 java 方法时出错

标签 java xpages

我的 Xpages 应用程序有一个用于应用程序范围设置的 cacheBean。我有一个用于 PC 文档的托管 Bean,其字段状态为整数类型。

在cacheBean中,我有一个方法getPCStatus(Integer status),当给定数字时,该方法将返回状态的字符串文本。

在我的 Xpage 上,我有一个文本字段,我想将其绑定(bind)到

的结果

cacheBean.getPCStatus(PCBean.status)

因此,对于 1,它将返回“Inventory”,对于 2,则返回其他内容,等等。

但是,代码抛出错误。

这是代码:

readonly="true">
<xp:this.value><![CDATA[#{CacheBean.getPCStatus(PCModelBean.status)}]]></xp:this.value>
</xp:inputText>

错误是

EL 语法错误,属性“值”:CacheBean.getPCStatus(PCModelBean.status)

我知道我很久以前读过一些有关此问题的内容,但不记得如何处理这个问题,但找不到它。

我想知道 getPCStatus 方法应该在 PCBean 中还是在 cacheBean 中?

最佳答案

n XPage 使用的 EL 版本不支持调用带参数的方法。如果 getPCStatus() 是零参数方法,那么您可能可以使用 #{CacheBean.pCStatus} 调用它,但事实上它是妨碍您的参数.

有一些常见的解决方法:如果 CacheBean 本身实现了 MapDataObject,那么 EL 将调用 getgetValue 方法,分别与您在“.”之后放置的任何内容一起使用。 - 你可以用它来排序假方法调用。

或者,您可以保留 CacheBean 一个 POJO(不实现这些接口(interface)之一),但让 getPCStatus 本身的返回值是一个 MapDataObject,它将采用您传入的任何值(在本例中为 PCModelBean.status)并使用类似 #{CacheBean 的绑定(bind)进行查找.pCStatus[PCModelBean.status]}DataObject 写起来还不错:https://frostillic.us/blog/posts/FE0AE00B7CEC4F8885257D46006CAB68

或者,作为所有这些的完整替代方案,如果您不需要绑定(bind)为读+写,则可以使用 SSJS 来调用该方法。

关于java - Xpages:在 EL 中的 CacheBean 中调用 java 方法时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35781760/

相关文章:

active-directory - 如何使用 XPages 查询 AD?

xpages - 重新打开应用程序后正在重置主模板名称

html - xPages 和 html 模板 - 不同大小的元素

javascript - 尝试从 CSJS 在 vi​​ewscope 中设置 BS Accordion 的状态,但值始终相同(且不正确)

java - 在 Java 中最好没有工厂的情况下克隆通用对象的有效方法

java - Mosby 框架 - getView 导致 ClassCastException

java - Maven tomcat7 插件启动应用程序但无法远程访问

Xpages 日期时间选择器字段默认为今天的日期

java - JEE 无法运行 JAX-RS WebService 框架应用程序

java - 将 mysql-connector.jar 添加到构建路径时出现错误的类文件 magic (cafebabe) 错误