我正在使用Spring v4.1.7-RELEASE。我有一些复杂的后端代码从路径加载属性文件。
我添加了一个新属性,我可以看到我可以使用@Value($ {some-property})读取它的值
@Value(value="${some-property}")
private String someProperty;
现在我想将此值传递给JSP。具有上述属性的java代码无权访问ServletContext,HttpServletRequest或HttpSession。简而言之,我们支持吐出JSON,因为它们公开了REST API。
我怎样才能完成这项工作?
答案 0 :(得分:0)
您可以使用spring表达式语言直接在jsp上读取属性文件中的值。
添加如下所示的util配置,并从jsp中读取它。
<util:properties id="propertyConfig" location="classpath:conf/sample.properties"/>
<spring:eval expression="@propertyConfig['propertyname']" />
答案 1 :(得分:0)
我意识到我的JSP不在Servlet上下文中,因此无法使用Spring标记库读取属性文件。要在Servlet Context中获取它,需要在main-servlet.xml中添加ViewResolver,或者在web.xml中添加servlet的名称(DispatcherServlet)。
我的工作是直接读取JSP中的属性文件,如下所示:
<%
FileInputStream fis = new FileInputStream("/etc/path/some.properties");
Properties prop = new Properties();
try {
prop.load(fis);
}
catch (IOException e) {
e.printStackTrace();
}
String someId = prop.getProperty("some.demo.id");
%>