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
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()}
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