在 Liferay 5.2.x 中,我试图获取触发ExpandoValue
实例/记录更改的用户或用户 ID。这可能吗?
自定义属性/扩展数据模型由ExpandoTable
、ExpandoColumn
、ExpandoRow
和表示ExpandoValue
。 ExpandoValue
似乎没有字段来跟踪谁进行了最后一次更改。我需要做什么才能添加一个?这是一个好主意吗?
或者,我有一个ExpandoValueListener
模型监听器。不过,模型侦听器似乎与任何特定请求分离,因为侦听器方法会“响应地”触发模型中的更改。接口中的任何方法标头都不ModelListener
包含任何类型的请求,甚至不包含 ServiceContext(由请求构建)。
尽管如此,有没有一种方法可以访问请求、ServiceContext 或其他一些机制来从任何 ModelListener 方法(可能是其中一种方法)中获取当前的 UserId onBefore*()
?我见过有人推荐使用PrincipalThreadLocal
,但有时似乎会返回null
。
有任何想法吗?我是否需要只捕获按钮单击?我试图避免这种情况,因为它比数据库触发器或模型侦听器更混乱且更难维护。
提前致谢!