不能在属性中使用标签:
<input type="submit" value="<sp:message code="send" />" />
无法将此消息标签用作函数:
<input type="submit" value="${sp:message('send')}" />
唯一的方法是将消息保存在 var 中(如此处所述),但我认为使用函数会比这更好:
<sp:message code="send" var="tmp_send" />
<input type="submit" value="${tmp_send}" />
所以我想写我自己的函数:
<taglib xmlns...>
<function>
<description>Be able to use Spring messages in attribute values</description>
<name>message</name>
<function-class>com.example.MyTagLib</function-class>
<function-signature>String message(java.lang.String)</function-signature>
</function>
</taglib>
但是在此处访问 MessageSource 存在设计问题(如此处所述)。
public class MyTagLib {
public static String message(String code) {
// TODO: use messageSource to resolve message
return code;
}
}
难道没有更好的方法来访问属性中的弹簧消息吗?