开发者

Spring MVC: Relative URL problems

开发者 https://www.devze.com 2023-01-23 00:37 出处:网络
I have a controller bound the URL: \"/ruleManagement\". Inside my JSP, I have a form that forwards (on submit) to \"ruleManagement/save\" url.When there are errors with the input fields, I want it to

I have a controller bound the URL: "/ruleManagement".

Inside my JSP, I have a form that forwards (on submit) to "ruleManagement/save" url. When there are errors with the input fields, I want it to return back the original form View. This is where the problem starts...

Problem 1) Now that the URL is "/ruleManagement/save", my form submit now points to "/ruleManagement/ruleManagement/save".

Problem 2) I tried using spring:url tag to generate the absolute paths for me, which usually works great. But when I p开发者_开发百科ut a spring:url tag inside of a tag, the spring:url tag does not get parsed correctly.

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

When I analyze the DOM after the page loads, my form tag looks something like:

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

If I don't use the spring:url tag, and instead use just "/ruleManagement/save", the url generated excludes my application name in the url, which is also wrong.

How do I generate a consistent URL pattern across all Views regardless of path? If the answer is "using spring:url", how do I get that content inside a form:form tag?


Custom tags in JSP can't be used in attributes of other custom tags, so you need to store intermediate result in a request attribute (using var to redirect output of the tag to the request attribute is a common idiom supported by many tags):

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


I too would love to be able to generate a consistent URL path across all Views! Is this possible with <spring:url .../>.

To answer your second question & tacking on to axtavt's answer, embed the <spring:url ... /> into the form action after adding the property htmlEscape="true"

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

0

精彩评论

暂无评论...
验证码 换一张
取 消