动态Spring表单动作

时间:2012-08-03 07:13:58

标签: spring servlets dynamic spring-mvc

我正在尝试在Spring MVC中创建一个表单。

我想使用 scriplet 或其他方式设置<form>元素动态动作属性。

MyForm的:

<form:form id="myForm" modelAttribute="myFormBean"
    action="<%=baseUrl%>/myFormControllerPattern" name="myForm">
    <fieldset>
        <table>
            <tr>
                <th>Name</th>
                <td><form:input path="name" /></td>
            </tr>
            <tr>
                <th>Age</th>
                <td><form:input path="age"/></td>
            </tr>
        </table>
    </fieldset>
</form:form>
  
    

错误:     %&gt;的属性“未正确终止

  

4 个答案:

答案 0 :(得分:4)

找到解决方案。感谢 jelies

在我的控制器中添加 baseUrl ,如下所示:

model.setAttribute("baseUrl",url);

然后在JSP中以我的形式使用它:

<form action="${baseUrl}/myFormControllerPattern">

答案 1 :(得分:0)

使用javascript更改表单操作。将baseUrl作为模型变量传递给spring控制器,并使用这样的javascript函数来更改表单操作:

function changeAction () {
    var baseUrl = "${baseUrl}";
    var form = document.getElementById("myForm");
    form.action = baseUrl;
}

希望它有所帮助。

答案 2 :(得分:0)

尝试使用javascript / jQuery技巧:

var curl = document.location.pathname;
    curl = curl.substring(0, curl.indexOf(".html"));

第一行将获取您的应用地址,然后您剪切“.html”子字符串,从而可以将“/ myFormControllerPattern”添加到字符串的末尾。

答案 3 :(得分:0)

c:url标签可以是有用的

包含到jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

然后

<form id="myForm" action="<c:url value="/myFormControllerPattern" />" name="myForm">