Возможно ли получить текущий URL страницы в FTL?
FreeMarker - Получить текущий URL
Ответ 1
Насколько я могу судить, freemarker - это строго шаблонный движок - он просто создает текст и не знает, где будет выглядеть этот текст. Если вы хотите включить "URL текущей страницы", вам придется либо передать эти данные в шаблон из кода Java хоста (рекомендуется), либо вам придется обнаруживать его на стороне клиента, используя javascript.
Ответ 2
Я запускаю Spring 3.2.x и exposeSpringMacroHelpers по умолчанию имеет значение true.
Установите, следует ли выставлять RequestContext для использования макросом Springбиблиотеки под названием "springMacroRequestContext". По умолчанию "Истинный".
По моему мнению, я могу сделать что-то вроде
<#if springMacroRequestContext.requestUri?contains("/login")>
Ответ 3
Как дополнение: если вы используете FreemarkerServlet, хеш с именем "Request" передается каждому шаблону, который должен иметь один ключевой запросURL в соответствии с документацией .
Ответ 4
Да, это возможно. Убедитесь, что вы добавили "exposeSpringMacroHelpers" для своего распознавателя в контексте вашего приложения.
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="exposeSpringMacroHelpers" value="true" />
<property name="prefix" value="/view/" />
<property name="suffix" value=".ftl" />
</bean>
Затем вызовите ${springMacroRequestContext.getRequestUri()} в вашем шаблоне
<span>This page url is: ${springMacroRequestContext.getRequestUri()}</span>
Ответ 5
Просто используйте эту строку:
<#assign url = http.request.url />
${url}