JSP中有两个actionform放在同一个form中,分别对应两个数据库表,现在用的是struts1,如何实现在同一个form中提交,交给后台的action处理?
struts1不支持一个页面多个actionform,想复用form就继承。 但是不能复用另外的actoin,只能用html写个表单提交到那个写好的action。
1)
如果只提交一次form,然后调用对应的action,然后在action里面进一步把form中的值取出来,然后插入或者更新到两张数据库表中的话,可以采用下面的方式。
复用已有的两个form bean,让其中的一个form bean继承自另一个form bean。比如:
public class MyForm2 extends ActionForm{
}
public class MyForm1 extends MyForm2{
}
然后在struts-config.xml里面只配置MyForm1即可。
<action-mappings>
<action path="/MyAction" type="MyAction" name="MyForm1" />
</action-mappings>
public class MyAction extends Action {
public ActionForward execute(
ActionMapping mapping,ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
MyForm1 myForm = (MyForm1) form;
}
}
最好还是单独定义一个form bean,里面包含所有的form项目,这样比较好理解,毕竟MyForm1和MyForm2没有继承关系。
相关推荐
对于包含列表的表单,用户可能需要在页面上输入多条数据,如一个订单中包含多个商品。每个商品项可能都有自己的属性,如商品ID、名称、数量等。在HTML表单中,这些数据可以通过数组或列表的格式来表示,比如`[0].id...
首先,我们需要创建一个ActionForm类,继承自Struts的`ActionForm`基类。在这个类中,为每个表单字段声明对应的属性,并提供getter和setter方法。 3. **添加验证逻辑** 在ActionForm中,我们可以通过重写`...
它继承自org.apache.struts.action.ActionForm接口,并包含多个字段来存储表单中的数据。当用户提交表单时,Struts框架会自动将表单数据填充到ActionForm实例中。 为了提交多行数据,我们通常会在HTML页面中使用多...
在Struts1中,ActionForm类需要有一个对应的List字段来接收这些值,这样在提交表单时,Struts1的默认Binding机制会自动将这些值绑定到List中。 4. **配置文件**: 配置文件(struts-config.xml)需要添加相应的...
在session作用域中,ActionForm实例会被多个请求共享。 5. ActionForm的优点 使用ActionForm可以简化表单数据的处理和验证,提高开发效率和代码的可读性。同时,ActionForm还提供了动态Bean和表单验证功能,提高了...
ActionForm是Struts框架中的一个重要组件,它是模型层与控制器层之间的桥梁,用于处理用户在表单中提交的数据。 在Struts框架中,ActionForm类负责收集、验证和封装来自用户界面的数据。当用户通过HTML表单提交请求...
在Struts1.x中,实现文件上传功能是一个常见的需求,特别是在处理用户提交的表单时需要包含多个文件。下面我们将详细介绍如何使用Struts1.x来实现多个文件的上传。 首先,我们需要在HTML表单中添加`...
`validate`方法是在ActionForm中定义的一个可选方法,用于在提交表单数据后验证用户输入的有效性。这个方法通常会在调用Action的`execute`方法之前被调用。如果验证失败,`validate`方法会返回一个ActionErrors对象...
当用户在视图层(通常是HTML表单)填写信息并提交后,这些数据会被封装到一个ActionForm对象中。这个对象随后被控制器(Struts的Action)用来处理业务逻辑,更新模型,最后再将结果转发给适当的视图。 ActionForm类...
文件上传功能是Web应用中常见的需求之一,特别是在处理用户需要提交多个文件的场景下。Struts1.x提供了处理多文件上传的功能,使得开发者可以方便地集成到自己的应用程序中。 在Struts1.x中实现多文件上传,主要...
同时,还需要定义一个或多个-forward,指明请求成功或失败时转向的JSP页面。 ```xml ``` 3. **实现Action类**:LoginAction类中,会有一个execute方法,这是处理请求的核心。在这里,通常会进行登录验证,如...
10. **Struts1生命周期**:从用户发起请求开始,经过DispatcherServlet、ActionServlet、ActionMapping、ActionForm、Action,最后返回JSP页面,这是Struts1的一个典型处理流程。 通过这个"struts1完整demo",...
例如,更新数据库记录时,即使用户多次点击提交,服务端只执行一次更新操作。 3. **页面跳转和重定向(Redirect and RedirectAction)**:在处理完请求后,使用`RedirectAction`或HTTP的302重定向响应,使浏览器...
- **多模块**:在一个项目中可以有多个独立的功能模块,每个模块都有自己的`struts-config.xml`配置文件。 - **模块间的通信**:通过共享数据源或使用Struts提供的机制进行跨模块的数据传递。 #### 六、总结 ...
- **Action**:Action是业务逻辑的实现,它是一个Java类,通常包含多个方法,每个方法对应一个特定的操作。`execute`方法是核心,处理完业务逻辑后,返回一个表示结果的`ActionForward`对象。 - **ActionForm**:...
然后,我们需要在Struts的配置文件`struts-config.xml`中定义这个ActionForm。在这里,我们声明一个名为`batchUploadForm`的form-bean,并指定其类型为`BatchUploadForm`。同时,需要配置一个Action映射,指定Action...
Struts1是一个经典的Java Web开发框架,由Apache软件基金会维护,它主要负责处理MVC(Model-View-Controller)架构中的控制器部分。Struts1在2000年代初期非常流行,因为它提供了一种结构化的解决方案,使得开发者...
它会涵盖基本的表单提交、文件上传下载、异常处理、国际化、数据校验等多个方面,帮助初学者快速上手。尽管Struts1.x的时代已过去,但其设计理念和模式仍然是现代Web开发的重要基础。通过深入研究,你不仅能提升自己...
在Struts1.2版本中,实现多文件上传是一项常见的需求,它允许用户在一次提交中上传多个文件,这对于数据交互、资源分享等场景非常实用。在本教程中,我们将深入探讨如何在Struts1.2中实现这一功能。 首先,理解多...