2010-06-15 9 views
7

Gdzie w aplikacji Spring-MVC/JSP byłyby przechowywane rzeczy, które muszą być dostępne zarówno przez kontrolery i widoki, takie jak specyficzne dla środowiska base_url, identyfikatory aplikacji do użycia w javascript i tak dalej?Spring MVC - JSP - Miejsce przechowywania stałych specyficznych dla środowiska

Próbowałem utworzyć komponent o zasięgu aplikacji, a następnie <jsp:useBean> u góry moich stron JSP, ale to nie działa.

<!-- Environment --> 
    <bean id="myEnv" class="com.myapp.MyAppEnvironment" scope="application"> 
     <property name="baseUrl" value="http://localhost:8080/myapp/"/> 
     <property name="videoPlayerId" value="234346565"/> 
    </bean> 

i używanie go w następujący sposób

<jsp:useBean id="myEnv" scope="application" type="com.myapp.MyAppEnvironment"/> 
+0

Należy opracować „nie wydaje się działać” bardziej w perspektywie dewelopera niż perspektywy użytkownika końcowego użytkownika. Co dokładnie się dzieje, a co dokładnie nie? Każdy błąd/wyjątek (w dziennikach)? – BalusC

+0

Powiedział, że nie znaleziono fasoli o takim zakresie, wyrzucił wyjątek, ale nie jestem nawet pewien, czy tak właśnie powinno się obchodzić z takim przypadkiem, typem wyjątku jest: java. lang.InstantiationException: komponent bean spEnv nie został znaleziony w zakresie – walnutmon

Odpowiedz

9

Co jest scope="application"? To dla mnie nowe.

W każdym razie, jeśli wszystko, czego potrzebujesz, to aby twoje strony JSP mogły uzyskać dostęp do fasoli Spring, możesz odsłonić fasolę JSTL przy użyciu właściwości exposedContextBeanNames z InternalResourceViewResolver. Na przykład:

<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> 

a następnie w JSP:

${myEnv.baseUrl} 
+0

scope = "application" - http://java.sun.com/products/jsp/tags/11/syntaxref11.fm14.html To interesująca funkcja mechanizmu rozpoznawania widoku Spróbuję tego i podniosę odpowiedź, jeśli zadziała dla mnie, dzięki – walnutmon

+0

@jboyd: Ah, to jest JSP, nie dotyczy Spring. – skaffman

Powiązane problemy