我已经使用Java EL表达式(javax.el 3.0)创建了以下代码:
@MyLoggingAnnotation(value = "#{userName}")
public void updateUser(
@MyLoggingParam("userName") String username,
List<PositionDto> userPositions) {
updateUserPosition(userName, userPositions)
}
它有效,但是现在我也必须改进它以记录位置。我可以自由地修改 value (注释中的参数)的处理,但是我必须将其保留为对象。 (它可以是列表,数组或其他任何东西,但必须是一个对象)
我的第一个赌注是:
@MyLoggingAnnotation(value = "${[#{userName},#{userPositions}]}")
public void updateUser(
@MyLoggingParam("userName") String username,
@MyLoggingParam("userPostions") List<PositionDto> userPositions)) {
updateUserPosition(userName, userPositions)
}
但是它仅使用字符串“#{userName}”和“#{userPositions}”来进行字符串收集
您有更好的主意将这两个对象与EL一起传递吗?
谢谢您的帮助。
解决方案发现,我可以通过EL传递列表,这是一个很大的错误。更正注释后,将显示以下内容:
@MyLoggingAnnotation(value = "${userName, userPositions]}")
现在,我现在可以将值作为单个对象的列表了。