EL变量不为空时添加前导space

Add leading space to EL variable when it is not empty

当我添加 ${parameter} 并且它存在时,是否有更优雅的方法来添加前导 space?

示例: 我想向用户创建一条消息,根据我的对象的状态,它可能有序列号,也可能没有。但我想以任何方式显示这段文字:

Should this carrier be removed from it's parent container (${container.name} ${container.serialNumber})?

当序列号存在时看起来没问题,当序列号不存在时,名称和右括号之间有一个space。

目前我会避免在之前添加类似 ${not empty container.serialNumber?' ':''} 的内容。

这会使代码更加混乱,但不一定会提高代码的可读性。另一种选择是在后端站点上添加 space,但这会混合前端和后端逻辑。

还有其他建议吗?

提前致谢。

稍作改进可能是将表达式写成:

${empty container.serialNumber?'':' '}

..但这确实需要自定义 EL 函数。要创建一个,请参阅 EL tag info.

如果您不想编写自定义 EL 函数,您可以随时向 container 模型添加一个方法来获取格式化字符串。