Spring MVC:相对URL问题

Cor*_*rey 12 java spring jsp jstl spring-mvc

我有一个控制器绑定URL:"/ ruleManagement".

在我的JSP中,我有一个表单,可以转发(提交)到"ruleManagement/save"url.如果输入字段有错误,我希望它返回原始表单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">
Run Code Online (Sandbox Code Playgroud)

当我在页面加载后分析DOM时,我的表单标签看起来像:

<form action='<spring:url value="/ruleManagement/save" />' ... >
Run Code Online (Sandbox Code Playgroud)

如果我不使用spring:url标签,而只使用"/ ruleManagement/save",则生成的url会在url中排除我的应用程序名称,这也是错误的.

无论路径如何,如何在所有视图中生成一致的URL模式?如果答案是"使用spring:url",我如何在表单:form标签中获取该内容?

axt*_*avt 23

JSP中的自定义标记不能用于其他自定义标记的属性,因此您需要将中间结果存储在请求属性中(使用var将标记的输出重定向到请求属性是许多标记支持的常用习惯用法):

<spring:url var = "action" value='/ruleManagement/save' ... />
<form:form action="${action}" method="post"> 
Run Code Online (Sandbox Code Playgroud)