我正在开发一个基于Spring MVC的应用程序,并使用spring标签库进行表单数据绑定。我很高兴地使用了标签,直到我意识到与单个无线电相关联的标签没有从消息源中获取,但我在JSP中对它们进行了硬编码。我之前没有注意到,所以现在我想解决这个问题,在这里遇到一个愚蠢的小问题,我希望你能帮助我。
好的,这有效:
<form:radiobutton path="metric" value="0" label="inches" />
<form:radiobutton path="metric" value="1" label="centimeters" />
这不是。
<form:radiobutton path="metric" value="0" label="<fmt:message key="label.calculator.units.imperial" />" />
<form:radiobutton path="metric" value="1" label="<fmt:message key="label.calculator.units.metric" /> " />
问题是fmt:message标签的嵌套格式为:radiobutton标签。我得到引起:org.apache.jasper.JasperException:/WEB-INF/jsp/calculator/calculator.jsp(15,100)PWC6212:堆栈跟踪中的等号符号。
还有其他方法可以从消息源加载单选按钮的标签吗?我想我可以使用<c-rt:set>
首先将消息来源中的消息文本设置为变量,然后${varname}
将其设置为label=""
属性...但这似乎有点啰嗦。有什么建议吗?
答案 0 :(得分:4)
经常没有使用<form:radiobutton>
标记,但据我所知,您别无选择,只能将消息设置为变量,然后像label="${varname}"
一样使用它。
另一个选择是松开label属性,只需手动打印标签,如:
<spring:message code="label.calculator.units.imperial" /><form:radiobutton path="metric" value="0" />
<spring:message code="label.calculator.units.metric" /><form:radiobutton path="metric" value="1" />
当然,HTML结果会有所不同。您必须自己控制标签,而不是生成<label for="..."
的单选按钮标签。
答案 1 :(得分:0)
可以设置&#39; var&#39; spring的属性:message标签:
<spring:message var="inches" code="label.calculator.units.imperial"/>
<spring:message var="centimeters" code="label.calculator.units.imperial"/>
<form:radiobutton path="metric" value="0" label="${inches}"/>
<form:radiobutton path="metric" value="1" label="${centimeters}"/>