【问题标题】:Struts2 : Using form actionStruts2:使用表单动作
【发布时间】:2011-09-12 14:46:49
【问题描述】:

我正在使用基于 struts2 的应用程序 在我的表单提交的 JSP 页面中,是否必须使用 s:form(预定义的 struts 组件)

因为当我尝试这种方式时它起作用了(调用 struts.xml 下的 Action 类)

 <s:form action="HelloWorld" >
            <s:submit />
        </s:form>

但是当我尝试使用如图所示的普通表单提交时

<form action="HelloWorld">
<input type="Submit"/>
</form>

它不起作用,它给了我 404 错误。

请告诉我是否必须使用和提交数据??

【问题讨论】:

    标签: struts2


    【解决方案1】:

    struts 表单动作和 HTML 标记表单动作是不同的。如果您创建一个特定于 struts 的 URL,您可以使用带有 struts 的标准 HTML 表单标签(例如):

    如果在多个地方使用,生成 url 并像这样调用 -

    <s:url id="myActionUrl" action="HelloWorld" />
    
    <form action="<s:property value="%{myActionUrl}" />">
        <input type="Submit"/>
    </form>
    

    或在单个实例中使用 -

    <form action="<s:url id="myActionUrl" action="HelloWorld" />">
        <input type="Submit"/>
    </form>
    

    您通常可以在浏览器中查看页面源代码,以查看 Struts 生成的内容并像这样手动重新创建它。您通常最终会使用额外的 struts 标记(例如属性)从值堆栈中检索值,但有时它很有用,例如在动态生成 JavaScript 代码时。

    【讨论】:

    【解决方案2】:

    不,不强制使用任何 S2 标签,但正如 Russell 所说,您需要复制正确的操作 URL。

    在混合匹配 S2 表单标签和非 S2 HTML 表单标签时,您还需要小心一点,因为默认的 S2 主题会向页面添加额外的 HTML 标记;他们只是创建表单标签——默认主题使用表格标签来布局表单。

    【讨论】:

      【解决方案3】:

      您可以使用 s:form 作为表单和

      <input type="Submit"/>
      

      可以替换为

      <button type="submit"/>
      

      【讨论】:

        【解决方案4】:

        这不是关于使用哪个,而是你想要的。Struts2 标签为表单提供了额外的功能。

        请通过以下两个链接了解差异

        1]http://struts.apache.org/release/2.1.x/docs/form-tags.html
        2]http://www.w3schools.com/tags/tag_form.asp

        一些工具,如命名空间、工具提示、工具提示图标路径和许多是由struts2标签提供的。

        【讨论】:

          猜你喜欢
          • 2015-01-08
          • 2016-02-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多