我是Spring MVC的新手并且遇到以下情况:
在WEB-INF / demoshop-servlet.xml中,我有以下一行:
<bean id="someBean" class="com.xxx.xxx.web.SomeBean" />
我还有一个包含如下行的JSP:
${someBean.someAttribute}
我期望在呈现页面时从bean读取属性,但事实并非如此。表达式被忽略了。 (正确评估控制器中ModelMap中引入的对象的其他EL表达式。)
为了稍微调试一下,我将以下内容插入到JSP中:
<% System.out.println(application.getAttribute("someBean")); %>
打印null
。
缺少什么,或者我在这里做错了什么?
答案 0 :(得分:1)
Spring bean不会自动提供给JSP页面,您必须将bean放在适当的范围(应用程序,会话,请求或页面)中。你至少有这些选择:
Model
View
类并将bean添加到Model
。答案 1 :(得分:1)
这里有一个方法,你可以在没有Java代码的JSP文件中获取Spring bean。 设置Spring Web MVC XML文件并在viewResolver中添加1个属性:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="exposeContextBeansAsAttributes" value="true"/>
</bean>
现在,您可以在JSP中获取bean内容:
<c:out value="${ bean.value }" />