有没有办法用 Struts 填充多个表单并使它们可用于 JSP 页面?
我正在构建一个页面,上面有两种不同的表单,需要从数据库中预先填充自定义数据。两种形式必须在同一页面上。
当您调用 struts 动作时,框架会创建唯一的一个表单。它是与动作相关联的表单。此表单可通过execute
方法提供的参数获得。
但是,JSP 可能包含多个表单来执行多个操作。如果动作分派到 JSP,那么只有一个表单将被处理以将标记映射到表单 bean 的属性。
但是,没有什么可以阻止您在操作中创建其他表单实例并通过 EL 表达式在 JSP 中手动处理它。表单 bean 的实例可以通过表单名称更好地放置在请求或会话中,因此可以通过 EL 表达式轻松访问它。
是的,这是可能的。
您可以为此问题指定多个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 是一个很好的做法。