taglibs sec spring spring-mvc freemarker

spring - sec - Cómo obtener el contexto de solicitud en una plantilla de freemaker en primavera



sec:authorize thymeleaf (2)

¿Cómo obtener la ruta de contexto de solicitud en la plantilla de freemarker cuando se usa con spring ?

My view resolver es así

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

Mi vista resolver learn.common.web.view.FreemarkerViewResolver extends org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver


En su resolución de vista, puede agregar la siguiente propiedad

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

Luego, en su plantilla de freemarker puede obtener el parche de contexto de solicitud como

${rc.getContextPath()}


Si su requisito es obtener la ruta de contexto en su vista FTL, Spring proporciona una alternativa mejor: primero, importe spring.ftl en su vista

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

A continuación, utilice macro @ spring.url para la URL que desea que tenga en cuenta el contexto:

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

Esto es muy similar a -

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

Donde rc se define en viewResolver

Configuración basada en XML

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

o configuración de estilo Spring Boot (aplication.yml)

spring.freemarker.request-context-attribute: rc