从JSTL读取属性文件

hin*_*ind 6 jstl properties taglib

我试图使用taglib从JSTL中读取"属性文件",但我无法访问它

<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt"%> 
Run Code Online (Sandbox Code Playgroud)

我已经在web.xml中正确找到了tld文件,我确定这一点

<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/lib/fmt.tld</taglib-location>
</taglib>
Run Code Online (Sandbox Code Playgroud)

属性文件名是msg.性能

<fmt:bundle basename="msg">
<fmt:message key="error.more" />
</fmt:bundle>
Run Code Online (Sandbox Code Playgroud)

我一直在

???error.more???
Run Code Online (Sandbox Code Playgroud)

而不是属性文件中的消息

我认为问题在于找到属性文件,或者在基本名称中

<fmt:bundle basename="msg">
Run Code Online (Sandbox Code Playgroud)

我应该在哪里找到属性文件,如何在代码中引用它?

感谢大家

Bal*_*usC 9

<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt"%> 
Run Code Online (Sandbox Code Playgroud)

这是错误的URI.这适用于旧的JSTL 1.0,它长期失效.对于JSTL 1.1,您应该使用http://java.sun.com/jsp/jstl/fmt.


我已经在web.xml中正确找到了tld文件,我确定这一点

<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/lib/fmt.tld</taglib-location>
</taglib>
Run Code Online (Sandbox Code Playgroud)

修复taglib URL时,这是不必要的.将其从您的删除,web.xml并删除所有这些松散的TLD文件.你应该只有jstl.jarstandard.jar/WEB-INF/lib.或者当你使用JSTL 1.2时,只需要jstl-1.2.jar.没有什么需要做的.

也可以看看:


属性文件名是msg.性能

<fmt:bundle basename="msg">
<fmt:message key="error.more" />
</fmt:bundle>
Run Code Online (Sandbox Code Playgroud)

我一直在

???error.more???
Run Code Online (Sandbox Code Playgroud)

而不是属性文件中的消息我认为问题是在定位属性文件,或在<fmt:bundle basename="msg">我应该在哪里找到属性文件的基本名称,以及如何在代码中引用它?

把它放在类路径中.在您的特定情况下,使用基本名称msg,您需要将msg.properties文件放在类路径的根目录中.

也可以看看:


小智 3

尝试

   < fmt:bundle basename="msg"/>
   < fmt:message key="error.more" />
Run Code Online (Sandbox Code Playgroud)