gpt4 book ai didi

java - 从 JSP 访问 Spring Bean?

转载 作者:行者123 更新时间:2023-12-01 20:15:42 28 4
gpt4 key购买 nike

注意:请参阅related question还有。

我有一个简单的 Spring Bean myUrl,它是使用来自首选项位置(Windows注册表):

<beans:bean id="myUrl" class="java.lang.String" >
<beans:constructor-arg type="java.lang.String">
<beans:value>${my.registry.location:some.url}</beans:value>
</beans:constructor-arg>
</beans:bean>

该 bean 工作正常,但我想直接在包含在多个位置的 JSP 文件中使用它(因此,我不想尝试将其包含在特定 Controller 的模型中):

<%@ taglib prefix="myTags" tagdir="/WEB-INF/tags" %>
<myTags:cssPath hostURL="${myUrl}" relativePath="jquery-ui/css/smoothness/jquery-ui-1.10.3.custom.css" />
<myTags:cssPath hostURL="${myUrl}" relativePath="style.css" />
<myTags:cssPath hostURL="${myUrl}" relativePath="tableSorter.css" />

到目前为止,我没有尝试过使 myUrl bean 的值显示在 ${myUrl} 表达式中。我已经经历过this question并将我的 ViewResolver 修改为如下所示:

<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/body/" />
<property name="suffix" value=".jsp" />
<property name="order" value="1" />
<property name="exposedContextBeanNames">
<list>
<value>myUrl</value>
</list>
</property>
<property name="exposeContextBeansAsAttributes" value="true"/>
</bean>

但是,该值仍然没有显示出来。我怀疑我忘记了一些非常基本的东西,但我不知道是什么。谁能帮我吗?

最佳答案

您可以创建一个 Controller init 方法来获取 myUrl bean 并将其存储在 http session 中。

session.setAttribute("myUrl", myUrl);

然后在 JSP 代码中您需要引用该 bean。

<jsp:useBean id="myUrl" class="java.lang.String" scope="session"/>

例如获取值:

<myTags:cssPath hostURL="<%= myUrl %>" ...

关于java - 从 JSP 访问 Spring Bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45847480/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com