我有一个简单的Spring BeanmyUrl,它http://yourdomain.is.here/something使用Preferences位置(Windows注册表)中的URL(例如)进行了初始化:
myUrl
http://yourdomain.is.here/something
<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文件中使用它(因此,我不想尝试将其包含在特定控制器的模型中):
<%@ 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" />
到目前为止,我还没有尝试过使myUrlBean的值显示在${myUrl}表达式中。我经历了这个问题,并修改了我ViewResolver的样子:
${myUrl}
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>
但仍然没有显示该值。我怀疑我已经忘记了一些非常基础的东西,但是我不知道是什么。谁能帮我?
您可以创建一个控制器初始化方法,该方法获取myUrl bean并将其存储在http会话中。
session.setAttribute("myUrl", myUrl);
然后,在JSP代码中,您需要引用bean。
<jsp:useBean id="myUrl" class="java.lang.String" scope="session"/>
例如,获取值:
<myTags:cssPath hostURL="<%= myUrl %>" ...