2014-10-31 1 views
1

Это может быть очень простой вопрос о Spring EL. Я определил новый конечное состояние в Cas входа потока следующим образом:Как получить доступ к свойствам конфигурации в весеннем веб-потоке в потоке кассового входа

https: // MyHost: 8443/MyModule/somepage»/>

Мы должны использовать URL, определенный в cas.properties вместо из жесткого кодирования URL в externalRedirect новое имя. можно ли использовать что-то

и определить myurl в cas.properties.

Мы usign CAS 3.5.2

ответ

0

Возможно, это не то решение, которое вы ищете, но я сделал его работу с компонентом, определенным в cas-servlet.xml.

<bean id="loadUrls" class="yourpackage.LoadUrls" c:url="${cas.property.myUrl}"/> 

Тогда в LoadUrls классе у меня есть следующий код:

public class LoadUrls{ 
    private String url; 

    public LoadUrls(String url) { 
     this.url= url; 
    } 

    public void loadUrlsFromWebflow(RequestContext context) { 
     // [I used flowScope, you can use any other if you want]    
     context.getFlowScope().put("urlWebflow", this.url); 
    } 
} 

Последнее, что вам нужно, это вызвать этот метод из WebFlow:

<action-state id="stateLoadUrl"> 
    <evaluate expression="loadUrls.loadUrlsFromWebflow(flowRequestContext)"/> 
    <transition to="redirectAction"/> 
</action-state> 

<end-state id="redirectAction" view="externalRedirect:#{flowScope.urlWebflow}"/> 

Это просто Идея, вы можете настроить ее в соответствии с вашими потребностями. Кстати, если вы найдете решение, используя только выражение EL Spring, дайте мне знать, потому что мне нужна то же самое!

+0

Спасибо. Я использовал простую работу, потому что мне нужно было что-то без разработки кода. Я передал URL-адрес в параметрах запроса и использовал параметр запроса в конечном состоянии. – sohail

0

Я боролся с той же проблемой, но нашел гораздо более приятное решение.

<view-state id="orderExternalView" view="externalRedirect:#{propertyConfigurer.getProperty('link.externalOrderView')}" />