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