Где в приложении Spring-MVC/JSP Вы сохранили бы вещи, к которым нужно получить доступ и контроллерами и представлениями, такими как среда определенный base_url, идентификаторы приложений, которые будут использоваться в JavaScript и так далее?
Я попытался создать ограниченный по объему боб приложения и затем <jsp:useBean>
наверху моего JSPs, но это, кажется, не работает.
<!-- Environment -->
<bean id="myEnv" class="com.myapp.MyAppEnvironment" scope="application">
<property name="baseUrl" value="http://localhost:8080/myapp/"/>
<property name="videoPlayerId" value="234346565"/>
</bean>
И использование его следующим образом
<jsp:useBean id="myEnv" scope="application" type="com.myapp.MyAppEnvironment"/>
Что такое scope = "application"
? Для меня это в новинку.
В любом случае, если все, что вам нужно, это чтобы ваши JSP имели доступ к компонентам Spring, вы можете предоставить их JSTL, используя свойство visibleContextBeanNames
в InternalResourceViewResolver
. Например:
<bean id="myEnv" class="com.myapp.MyAppEnvironment">
<property name="baseUrl" value="http://localhost:8080/myapp/"/>
<property name="videoPlayerId" value="234346565"/>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="exposedContextBeanNames">
<list>
<value>myEnv</value>
</list>
</property>
</bean>
, а затем в вашем JSP:
${myEnv.baseUrl}