Spring MVC - JSP - место для хранения специфичных для среды констант - PullRequest
7 голосов
/ 15 июня 2010

Где в приложении Spring-MVC / JSP вы могли бы хранить вещи, к которым должны обращаться и контроллеры, и представления, такие как base_url для конкретных сред, идентификаторы приложений, которые будут использоваться в javascript и т. Д.?

Я пытался создать bean-объект с областью приложения, а затем <jsp:useBean> в верхней части моих JSP, но это, похоже, не работает.

   <!-- 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"/>

1 Ответ

9 голосов
/ 15 июня 2010

Что такое scope="application"?Это новый для меня.

В любом случае, если все, что вам нужно, чтобы ваши JSP могли иметь доступ к Spring bean-компонентам, то вы можете представить bean-компоненты JSTL, используя свойство exposedContextBeanNames 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}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...