我目前正在开发一个spring项目,我不得不在JSP中使用fmt标签。事实上,fmt标签对我来说很好,它从messages.properties
文件中读取正确的值。
例如:
<fmt:message key="General.Settings"/>
在.properties
文件中:
General.Settings=Settings
它读得很完美。
现在,将fmt标记放在另一个JSTL标记中时存在问题。
例如:
<input name="commit" value= <fmt:message key="AllMessages.PostThisMessage"/>
type="submit" onclick="return isEmpty();" />
在.properties
文件内:
AllMessages.PostThisMessage=Post this message
但它只显示“发布”一词而不是“发布此消息”
与其他JSTL标记内的所有其他fmt标记相同。
有什么建议吗?
答案 0 :(得分:17)
不要像这样嵌套你的标签,这是令人困惑和容易出错的。最好做这件事:
<fmt:message key="AllMessages.PostThisMessage" var="myMessage"/>
<input name="commit" value="${myMessage}" type="submit" onclick="return isEmpty();" />
如果你真的使用这种语法:
value= <fmt:message key="AllMessages.PostThisMessage"/>
然后,这是一个奇迹,它会产生无效的HTML。
答案 1 :(得分:1)
您忘记了value参数的引号:
<input name="commit" value="<fmt:message key="AllMessages.PostThisMessage"/>" type="submit" onclick="return isEmpty();" />
但如前所述,嵌套标签更难阅读。
答案 2 :(得分:1)
不确定是否因为我的JST库版本,但我无法直接在var
上设置<fmt:message />
。我必须创建一个c:set才能工作:
<c:set var="buttonEdit">
<fmt:message key="EDIT" bundle="${yourBundle}"/>
</c:set>
<input class="button edit" type="submit" title="your Title" value="${buttonEdit}" />
我是JSP的新手,所以我希望这很好。 ;-)
答案 3 :(得分:1)
在value属性周围添加单引号就可以了。
<input name="commit" value='<fmt:message key="AllMessages.PostThisMessage"/>'
type="submit" onclick="return isEmpty();" />