JSP是否支持资源包文本的运行时字符串替换?

时间:2013-09-06 05:05:35

标签: java jsp resourcebundle

在资源包属性文件中,我有以下文字

system.invalidID = This accountID $ is not valid for current session.

我想从JSP和java Class中的上述资源文本中动态替换$(这将是运行时的实际ID)。

我们可以在JSP和java中执行此操作吗?

3 个答案:

答案 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)}