jsp - 从jsp访问Spring MVC DI bean

标签 jsp templates spring-mvc view controller

在某些 MVC 框架中,如果您希望执行一些代码并呈现一些局部 View ,您可以从 View 中调用 Controller 操作。我不确定在 Spring MVC 中执行此操作的正确方法是什么

我想要一组 JSP 模板。其中一些将是页面布局,其中一些将是小组件,如分页器、登录框、菜单、标签云等。这些组件中的每一个都需要一些 bean 或 Controller 操作来将一些数据设置到 ViewAndModel 中,以便 View 可以使用它.

问题是我不想在每次调用中设置所有这些对象。我的注册 Controller 只关心注册处理。那么现在我该怎么做呢?如何从 View 中调用 DI bean 或 Controller 来准备部分 View ?或者我应该创建一些映射?或者我是从完全错误的角度处理问题?

最佳答案

如果您希望这样做,Spring-MVC 可以将应用程序上下文的 bean 暴露给 View 层。

例如,InternalResourceViewResolver可以指示公开上下文中的每个 bean,或者只是指定的 bean。看看exposeContextBeansAsAttributesexposedContextBeanNames特性。

例如,假设您想公开 bean beanAbeanB到您的 JSP。您将在您的上下文中声明 View 解析器:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
   <property name="exposedContextBeanNames">
      <list>
         <value>beanA</value>
         <value>beanB</value>
      </list>
   </property>
</bean>

或者,只公开每个 bean:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
   <property name="exposeContextBeansAsAttributes" value="true"/>
</bean>

这是否是一个好主意是另一个问题,但 Spring 确实为您提供了选择。

关于jsp - 从jsp访问Spring MVC DI bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2072101/

相关文章:

JSP 表达式语言不从 JavaBean 呈现属性

javascript - 页面加载时显示动态选择列表

c++ - 获取可变参数模板类的第 N 个参数的最简单方法?

java - spring-hibernate事务不回滚

java - Spring中的策略模式和依赖注入(inject)

java - 绝对uri : http://java. sun.com/jsp/jSTL/core无法解析

java - java/servlet中发送邮件出错

java - 将 <div> 数据传递给 servlet (ACE - EDITOR)

C++ OpenMPI 链表

c++ - 通过 C++ 实现容器元素总和的模板函数