3

有没有办法用 Struts 填充多个表单并使它们可用于 JSP 页面?

我正在构建一个页面,上面有两种不同的表单,需要从数据库中预先填充自定义数据。两种形式必须在同一页面上。

4

2 回答 2

3

当您调用 struts 动作时,框架会创建唯一的一个表单。它是与动作相关联的表单。此表单可通过execute方法提供的参数获得。

但是,JSP 可能包含多个表单来执行多个操作。如果动作分派到 JSP,那么只有一个表单将被处理以将标记映射到表单 bean 的属性。

但是,没有什么可以阻止您在操作中创建其他表单实例并通过 EL 表达式在 JSP 中手动处理它。表单 bean 的实例可以通过表单名称更好地放置在请求或会话中,因此可以通过 EL 表达式轻松访问它。

于 2013-03-08T17:30:11.663 回答
3

是的,这是可能的。

您可以为此问题指定多个ActionForm实现(首选)或仅使用一个 - 无论如何。

<nested:root name="myFirstForm">
    <nested:form action="/MyAction.do?method=foo" method="post">
        <%-- some code --%>
    </nested:form>
    <nested:form action="/MyAction.do?method=bar" method="post">
        <%-- some code --%>
    </nested:form>
</nested:root>
<nested:root name="mySecondForm">
    <nested:form action="/MyAction.do?method=foobar" method="post">
        <%-- some code --%>
    </nested:form>
</nested:root>

来自 Apache Struts新手常见问题解答

问:我是否必须为每个 HTML 表单设置一个单独的 ActionForm bean?

答:这是一个有趣的问题。作为一个新手,为每个动作序列创建一个新的 ActionForm 是一个很好的做法。

于 2013-03-08T15:45:43.113 回答