在 JSP 中使用 spring bean

meh*_*ost 4 spring jsp spring-mvc

我有包含方法 [void return] 的 bean 并希望在 JSP 中访问此 bean。

public class A {

  public void run() {}
}
Run Code Online (Sandbox Code Playgroud)

将以下代码添加到 spring 配置文件中。

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="exposeContextBeansAsAttributes" value="true"/>
</bean>
     <bean id="a" class="com.example.A"
 >
</bean>
Run Code Online (Sandbox Code Playgroud)

现在在我的 JSP 页面中:

${a.run}
Run Code Online (Sandbox Code Playgroud)

但此解决方案不起作用。请帮助我在 JSP 页面上访问 spring bean。

Dav*_*ton 6

将 bean 注入控制器并将其作为模型的一部分公开。

但是为什么需要run从 JSP调用呢?

JSP EL 期望遵循 JavaBean 命名约定;这个例子不会像你期望的那样工作。最简单的选择是重命名方法,或者提供额外的方法,即遵循JavaBean命名约定和调用run

编辑以回复评论。

如果您需要从链接调用方法,您有两个(合理的)选项:链接到调用注入服务的控制器操作,或者对调用注入服务的控制器方法进行 Ajax 调用。

直接从视图层(JSP)进行服务调用仍然是零理由。