1.需求:
所有的 jsp 页面都需要获取一个共同的属性,比如系统所有的图片都存在一个单独的服务器,那么它们的前缀都是一样的,这个地址需要作为配置项配置进去,这个时候就需要为所有的 jsp 都配置一个共同的属性,这个属性值就是一个公共的属性。
实现:
java 里面的父类就是干这个事的,所以只需要为jsp的解析器配置一个父类,在父类里面给属性赋值即可。
2.实现如下:
<bean id="absViewResolver" abstract="true">
<property name="attributes">
<props>
<prop key="imgYunServer">${upyun.fileServerUrl}</prop>
<prop key="xxx">${xxx.xxx}</prop>
</props>
</property>
</bean>
<!-- 定义JSP文件的位置,把上面定义好的类作为它的父类即可! -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
parent="absViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
3.jsp 中使用方式
<img alt="test" src="${imgYunServer}/a.jpg">
扩展:除了 jsp 之外,其他的任何地方我们都可以充分发挥父类的这种作用,设计它的初衷也正是如此,为子类提供共同的属性和行为。