我有一个控制器绑定了URL:“/ ruleManagement”。
在我的JSP中,我有一个表单,可以转发(提交时)到“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 tag?
答案 0 :(得分:23)
JSP中的自定义标签不能在其他自定义标签的属性中使用,因此您需要将中间结果存储在请求属性中(使用var
将标签的输出重定向到请求属性是常见的许多标签支持的习语:
<spring:url var = "action" value='/ruleManagement/save' ... />
<form:form action="${action}" method="post">
答案 1 :(得分:3)
我也希望能够在所有视图中生成一致的URL路径! <spring:url .../>
可以实现这一点。
回答你的第二个问题&amp;加入axtavt的答案,在添加属性<spring:url ... />
后将htmlEscape="true"
嵌入到表单操作中
示例:<form:form action="<spring:url value="/ruleManagement/save" htmlEscape="true" .../>" method="post">