Spring MVC: относительные проблемы с URL - PullRequest
12 голосов
/ 28 октября 2010

У меня есть контроллер, связанный с URL: "/ruleManagement".

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

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

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

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

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

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

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

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

Ответы [ 2 ]

23 голосов
/ 28 октября 2010

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

<spring:url var = "action" value='/ruleManagement/save' ... />
<form:form action="${action}" method="post"> 
3 голосов
/ 27 апреля 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...