Comment obtenir le contexte de la demande dans un modèle freemaker au printemps

Comment obtenir le chemin du contexte de la requête dans le modèle freemarker lors de l'utilisation avec spring?

Mon résolveur de vue est comme ceci

    <bean id="freeMarkerViewResolver" class="learn.common.web.view.FreemarkerViewResolver">
        <property name="order" value="1" />
        <property name="viewClass"
        value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
        <property name="suffix" value=".ftl" />
        <property name="cache" value="false" />
    </bean>

Mon résolveur de vue learn.common.web.view.FreemarkerViewResolver étend org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver

27
demandé sur msparer 2009-08-08 19:57:46

2 réponses

Dans votre résolveur de vue, vous pouvez ajouter la propriété suivante

<property name="requestContextAttribute" value="rc"/>

Ensuite, dans votre modèle freemarker, vous pouvez obtenir le patch de contexte de requête comme

${rc.getContextPath()}
37
répondu Arun P Johny 2009-08-08 15:59:40

Si votre exigence est de récupérer le chemin de contexte dans votre vue FTL, Spring fournit une meilleure alternative - Premier ressort d'importation.ftl à votre avis

<#import "/spring.ftl" as spring />

Ensuite, utilisez la macro @ spring.url pour L'URL que vous souhaitez rendre contextuelle -

<li id="history"><a href="<@spring.url '/rest/server/taskHistory'/>">History</a></li>

Ceci est très similaire à-

<li id="history"><a href="${rc.getContextPath()}/rest/server/taskHistory">History</a></li>

Où rc est défini dans viewResolver

Configuration basée sur XML

<property name="requestContextAttribute" value="rc"/>

Ou Configuration de style de démarrage à ressort (aplication.yml)

spring.freemarker.request-context-attribute: rc
6
répondu Munish Chandel 2018-02-06 13:31:47