在资源包属性文件中,我有以下文字
system.invalidID = This accountID $ is not valid for current session.
我想从JSP和java Class中的上述资源文本中动态替换$(这将是运行时的实际ID)。
我们可以在JSP和java中执行此操作吗?
答案 0 :(得分:3)
您可以使用JSTL的<fmt:message>
和<fmt:param>
标记一起参数化消息。
下面的basename
属性是指ResourceBundle
属性文件的基本名称,必须可以在webapp的类路径中访问。把所有东西放在一起看起来像这样:
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<fmt:setBundle basename="com.y.app.Messages" var="bundle" />
<fmt:message bundle="${bundle}" key="system.invalidID">
<fmt:param value="${attemptedID}" />
</fmt:message>
答案 1 :(得分:1)
您可以尝试JSTL Core <fmt:bundle> Tag
请参阅http://www.tutorialspoint.com/jsp/jstl_format_bundle_tag.htm
答案 2 :(得分:0)
您实际上可以使用类似
的方法创建一个简单的类public class ResourceBundleHelper{
public String resolveMessage(String key){
//code
}
}
然后创建此类的实例并将其放到ServletContext
然后从jsp el
${resourceBundleHelper.resolveMessage(YOUR_VARIABLE)}