使用Struts 2中的锚标记进行动态多表单子提交和超链接

时间:2012-11-22 07:22:15

标签: jsp struts2 anchor

我正在使用Struts 2应用程序并使用<s:iterator>在JSP中显示数据,并且在JSP中显示的每条记录都有一个超链接链接。

我想使用此链接并使用POST方法将一些数据提交到其他JSP页面。

以下是我在JSP中的代码片段:

<s:iterator value="#request.Forums">
<s:property value="user_name"/>
<s:form action="displayForum" >
<s:hidden name="id" ></s:hidden>
<s:hidden name="subject" ></s:hidden>
<a  href="javascript:this.form.id"><s:property value="subject"/></a>
</s:form>
</s:iterator>

我已尝试使用带有JavaScript的表单ID document.forms["formid"].submit,但我的迭代器不是一个id,因为它是动态变化的。

注意:我使用了<s:url> <s:form>,但是它将表单参数值附加到URL。但我的要求是将表单参数作为隐藏变量发送。

请帮帮我。

3 个答案:

答案 0 :(得分:1)

为您生成<s:form>的唯一ID

<s:iterator value="#request.Forums" status="stat">
   <s:form id="formid%{#stat.index}" action="displayForum">
       <a href="javascript:submitForm('formid<s:property value="#stat.index"/>')">submit</a>
   </s:form>
</s:iterator>

并将此ID传递给您的javascript函数。

答案 1 :(得分:0)

在表单中加id

<s:form id="formid" action="displayForum">
...
</s:form>

在你形成的内部,通过javascript调用放置一个锚:

<s:form...>
...
<a href="javascript: submit_my_form();">Submit</a>
</s:form>

然后输入你的javascript代码:

function submit_my_form() {
    document.forms["formid"].submit();
}

修改:有关详细信息,您可以在Google中搜索:使用javascript 提交表单。例如:http://www.javascript-coder.com/javascript-form/javascript-form-submit.phtml

答案 2 :(得分:0)

我还没有真正理解你的问题,如果你想提交一份表格,你应该使用submit,无论使用javascript还是s:submit,但我建议你试一试像这样:

<s:iterator value="#request.Forums" var="forum" status="status">
    <s:property value="#forum.user_name"/>
    <s:form action="displayForum" method="POST">
        <s:hidden name="id" value="#forum.id"></s:hidden>
        <s:hidden name="subject" value="#forum.subject"></s:hidden>
        <s:submit value="Submit"/>
    </s:form>
</s:iterator>