2010-10-28 2 views
12

У меня есть контроллер связанный URL: "/ ruleManagement".Spring MVC: Относительные проблемы с URL-адресом

Внутри моего JSP у меня есть форма, которая направляет (на submit) на "ruleManagement/save" url. Когда есть ошибки с полями ввода, я хочу, чтобы он возвращал исходную форму View. Здесь возникает проблема ...

Проблема 1) Теперь, когда URL-адрес «/ ruleManagement/save», моя форма submit теперь указывает на «/ ruleManagement/ruleManagement/save».

Проблема 2) Я пробовал использовать spring: url tag для создания абсолютных путей для меня, что обычно отлично работает. Но когда я помещаю тег spring: url внутри тега, тег spring: url не получается правильно разобрать.

<form:form action="<spring:url value='/ruleManagement/save' ...>" method="post"> 

Когда я анализирую DOM после загрузки страницы, моя форма тег выглядит примерно так:

<form action='<spring:url value="/ruleManagement/save" />' ... > 

Если я не использую весной: URL тег, и вместо этого использовать только «/ ruleManagement/save ", созданный url исключает мое имя приложения в URL-адресе, что также неверно.

Как создать согласованный шаблон URL во всех представлениях независимо от пути? Если ответ «using spring: url», как мне получить этот контент внутри формы: тег формы?

+0

Если вы просто пытаетесь контролировать базу для относительной URL, почему бы не использовать тег ''? – usethe4ce

ответ

23

Пользовательские теги в JSP нельзя использовать в атрибутах других настраиваемых тегов, поэтому вам нужно сохранить промежуточный результат в атрибуте запроса (используя var для перенаправления вывода тега в атрибут запроса, является общей идиомой, поддерживаемой много тегов):

<spring:url var = "action" value='/ruleManagement/save' ... /> 
<form:form action="${action}" method="post"> 
+0

Отличное спасибо! – Corey

3

Я также с удовольствием смогу создать последовательный URL-путь во всех представлениях! Возможно ли это с <spring:url .../>.

Чтобы ответить на ваш второй вопрос & лавируя на ответ axtavt, в встраивать <spring:url ... /> в виде действия после добавления свойства htmlEscape="true"

Пример: <form:form action="<spring:url value="/ruleManagement/save" htmlEscape="true" .../>" method="post">

Смежные вопросы