如何在jsp文件中检索上下文的值?本教程非常适合我的需要,但我需要在jsp文件中检索属性值。
http://www.mkyong.com/spring/spring-listfactorybean-example/
我可以使用特定的拦截器吗?
答案 0 :(得分:1)
将userContext
的bean(或源)注入控制器,以便可以在本地变量中访问它。
所以举个例子可能就是这样:
@Autowired
private CustomerBean customerBean;
@RequestMapping(value="/foobar/index.jsp")
public String (HttpServletRequest request) {
Object userContext = customerBean.getLists();
request.setAttribute("userContext", userContext);
return "/foobar/index.jsp"; // expecting JstlView viewResolver to map to JSP file
}
在CONTROLLER中只需将数据添加到HttpServletRequest(您只需将其作为参数添加到方法中以引入它)。
然后使用request.setAttribute("userContext", userContext);
然后在JSP中使用表达式语言(如${userContext}
)轻松访问它。使用Spring模型范例还有其他方法,但它们可以有效地完成上述操作。
确保将JstlView设置为https://dzone.com/articles/exploring-spring-controller
有关如何在JSP中使用EL来检索附加到请求的数据的更多信息: How to obtain request / session / servletcontext attribute in JSP using EL?
答案 1 :(得分:1)
你指的是春天语境吗?
通常,JSP应该只是页面的模板,因此与后端的唯一交互应该是访问作用域属性的值。这意味着您需要的任何bean值都应存储在模型中。
这就是说,有几种方法可以让Spring bean暴露出去查看。取决于您使用哪个View解析器,扩展UrlBasedViewResolver
的解析器具有setExposeContextBeansAsAttributes
属性
设置是否在应用程序上下文中创建所有Spring bean 作为请求属性可访问,通过延迟检查一次 属性被访问。这将使所有这些bean都可访问 JSP 2.0页面中的简单$ {...}表达式,以及JSTL的c:out 价值表达。
默认为" false"。
您可以将其配置为
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
<property name="exposeContextBeansAsAttributes" value="true" />
</bean>