gla*_*666 8 spring-mvc sitemesh
我正在使用Spring 3和sitemesh.我想在sitemesh中定义的decorator页面中引用spring context bean.
问题是SiteMesh过滤器在Spring上下文之外工作,因此sitemesh decorator jsp页面上的请求对象是本机HttpServletRequest,而不是包含有用函数的包装器来访问上下文等.
有没有办法以某种方式配置spring和sitemesh以访问装饰页面中的Spring上下文?
首先为您喜欢的任何内容创建一个单例,我只是设置一个字符串,但任何类都可以工作:
public class MySiteEnvironment {
private String someConfigurationParameter;
public String getSomeConfigurationParameter() {
return someConfigurationParameter;
}
public void setSomeConfigurationParameter(String someConfigurationParameter) {
this.someConfigurationParameter = someConfigurationParameter;
}
/* SINGLETON */
private static final MySiteEnvironment INSTANCE = new MySiteEnvironment();
private MySiteEnvironment() {
}
public static MySiteEnvironment getInstance() {
return INSTANCE;
}
}
Run Code Online (Sandbox Code Playgroud)
接下来您需要注入值:
<bean id="mySiteEnvironment" class="MySiteEnvironment" factory-method="getInstance">
<property name="someConfigurationParameter" value="myValueOrBean"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
最后你可以通过以下方式访问它:
<%@ page import="MySiteEnvironment" %>
<% pageContext.setAttribute("env", MySiteEnvironment.getInstance()); %>
Run Code Online (Sandbox Code Playgroud)
现在您可以使用表达式语言来访问环境
| 归档时间: |
|
| 查看次数: |
2850 次 |
| 最近记录: |