Java 在Struts 1.x JSP中填充多个表单

Java 在Struts 1.x JSP中填充多个表单,java,jsp,struts,struts-1,Java,Jsp,Struts,Struts 1,有没有办法用Struts填充多个表单并使它们可用于JSP页面 我正在构建一个页面,该页面上有两种不同的表单,需要从数据库中预填充自定义数据。两个表格必须在同一页上 是的,这是可能的 您可以为此问题指定多个ActionForm实现(首选),也可以只使用一个实现(无所谓) <nested:root name="myFirstForm"> <nested:form action="/MyAction.do?method=foo" method="post">

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

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

是的,这是可能的

您可以为此问题指定多个
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表单,我必须有一个单独的ActionFormbean吗

答:这是一个有趣的问题。作为一个新手,这是一个很好的实践 为每个动作序列创建新的动作表单


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

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

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