如何将 spring 表单输入占位符属性值引用到消息源 属性?

How to reference a spring form input placeholder attribute value to a message source property?

是否可以在 spring-[=17= 中使用 spring:message 标签(spring 标签库)从 .properties 消息文件中检索消息]标签(spring表单标签库,用于数据绑定)。


src/main/resources > texts.properties (文件)

testEntry=Test entry

src/main/webapp/WIN-INF/JSP > test.jsp

如果我尝试这样做:

<%@taglib prefix='spring' uri='http://www.springframework.org/tags'%>
<%@taglib prefix='form' uri='http://www.springframework.org/tags/form'%>

<form:input path="test" placeholder='<spring:message code="testEntry">'/>

结果我得到 <spring:message code="testEntry"> 作为占位符而不是 Test entry


如果我尝试这样做:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix='spring' uri='http://www.springframework.org/tags'%>
<%@taglib prefix='form' uri='http://www.springframework.org/tags/form'%>

<c:set var="placeholder" value='<spring:message code="testEntry">'/>
<form:input path="test" placeholder='${placeholder}'/>

我得到了相同的结果。我明白这个问题。但是是否有另一种方法可以在 JSP 中执行此操作,以便具有适当代码的消息显示为 spring-form 标记的属性值?

您可以使用 message 标记的 var 属性将已解析的消息分配给命名变量。然后您可以将该变量用作 EL 变量。

<spring:message code="testEntry" var="placeholder" />
<form:input path="test" placeholder='${placeholder}'/>

这会将 testEntry 的已解析消息分配给名为 placeholder 的变量,然后您可以在输入标记中使用该变量。