从普通HTML表单调用Struts2命名空间

时间:2013-12-17 18:32:23

标签: java javascript jsp struts2 action

例外:

描述:请求的资源/Strut2Examples/checkMethods/updateCRUD不可用。如何使用Struts2从普通 HTML调用基于 namespace 的操作。它适用于Struts2 Forms。请帮我理解。

HTML:

    <s:form namespace="/checkMethods" action="executeCRUD" >            
        <s:submit label="execute" value="execute" />
    </s:form>

    <form  name="normalForm" id="normalForm">
    <input type="button" value="update" onclick="submitForm()"/> 
    </form>

Java脚本:

   <script type="text/javascript">
     function submitForm()
     {
         var myForm = document.getElementById("normalForm");
         myForm.action="checkMethods/updateCRUD";
         myForm.submit();
     }
    </script>

1 个答案:

答案 0 :(得分:2)

如果要使用HTML表单标记,则应使用url标记的操作名称和名称空间属性构建URL。例如

<form action="<s:url namespace="/checkMethods" action="deleteCRUD"/>" method="POST">

同样关注您可以混合url标记的JavaScript代码。喜欢这个

myForm.action='<s:url namespace="/checkMethods" action="deleteCRUD"/>';

实际上,如果您定义表单的action属性,则不需要在事件处理函数中构造URL。只需submit()

您应该认真对待url标记,因为例如您在action属性中构建了缺少上下文路径和斜杠的URL以及您所做的错误。