`
- 浏览:
662356 次
- 性别:
- 来自:
北京
-
Struts1 页面提交数据到ActionForm中获取的是null
这个问题耽误了我不到时间,我从配置文件struts.xml开始梳理到执行完后台程序返回页面,但是这个流程下来并没有任何的错误。
碰到这个问题的时候我是从以下几个方面开始查找的:
第一:检查页面的form表单的标签的name属性名称是否和封装的这个页面的ActionForm的属性名字匹配;
第二:检查struts配置文件中<form-bean name="给ActionForm命名的名字" type="ActionForm的路径" />和 <action attribute="给ActionForm命名的名字" name="给ActionForm命名的名字" type="对应的Action类的路径"> </action>ActionForm的名字和ActionForm、Action的路径是不是不对应
第三:检查此页面是否有和此form同名的其他form表单
第四:是否在ActionForm中对属性名生成了get和set方法(对于这一步我感觉还是没必要检查的,因为在这里犯错的几率相当小吧)
经过debug模式调试和再三检查,确实没有任何错误,后来发动我的组长给我调试也没找出来是哪个地方错误。于是万般无奈之下我只好清空页面<body>里面的所有元素,重新写一个form表单,里面只有一个text文本,看看是否可以成功到后台获取数据。结果惊喜来了,这样就是完全ok的,于是乎错误就确定了,肯定是这body里面的代码有问题了。结果我发现在这个页面中用include标签包含了其他的页面,我就进这几个页面一瞅瞅,傻眼了吧。原来问题隐藏在这里了,就是这个include标签包含的页面中的form搞的鬼。最后解决办法就是把这个无用的form干掉了,就ok啦!
所以呀,在别人的基础上代码的话,可就得小心了。说不定哪地隐藏了一个不易发现的陷阱呢。。。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
ActionForm是Struts1中处理用户输入的核心组件,它负责接收、验证和封装来自表单的数据。在本文中,我们将深入探讨如何利用ActionForm实现表单验证,并在验证失败时追加错误信息。 1. **ActionForm介绍** ...
在用户提交一个HTML表单后,Struts框架会创建一个ActionForm实例,并将表单数据填充到这个实例的属性中。ActionForm类通常包含与表单字段对应的属性和getter、setter方法。例如,如果表单有一个名为"name"的输入字段...
4. **异常情况处理**:在实际应用中,还需要考虑到一些异常情况的处理,例如会话过期、用户刷新页面等情况,需要对这些情况进行合理的处理,确保系统的健壮性。 #### 使用示例 下面是一个具体的使用示例: 1. **...
- **步骤1**:用户提交表单,Struts自动将数据填充到`ActionForm Bean`。 - **步骤2**:调用`ActionForm Bean`的`validate()`方法进行验证。 - **步骤3**:无错误时,验证通过,否则保存错误信息并转发到错误处理...
### 解决Struts中通过Token防止重复提交的问题 在Web应用程序开发中,特别是基于MVC架构的框架如Apache Struts中,确保用户操作的安全性是非常重要的。其中一项常见且重要的安全措施是防止表单的重复提交。本文将...
在Struts1中,实现文件上传和下载功能是常见的需求,这对于处理用户提交的文件,如图片、文档等,至关重要。下面将详细解释如何在Struts1中实现这两个操作。 首先,我们关注文件上传。在Struts1中,文件上传主要...
2. 如果 ActionForm 实例不存在,就创建一个 ActionForm 对象,并把客户提交的表单数据保存到 ActionForm 对象中。 3. 根据配置信息决定是否需要表单验证。如果需要验证,就调用 ActionForm 的 validate()方法。 4. ...
1. **创建ActionForm**:定义一个ActionForm类来封装用户提交的表单数据,并进行验证。 2. **编写Action**:创建Action类来处理用户的请求,调用业务逻辑层的方法,并决定视图的转向。 3. **配置Struts**:在`struts...
5. **更新视图层**:检查并更新Struts1中的JSP页面,确保它们与Struts2的标签库兼容。 6. **测试与验证**:完成迁移后,进行全面的测试,确保所有功能正常工作。 #### 示例代码 ```java // Struts2 Action示例 ...
在这个实例中,我们将探讨如何在Struts框架下实现图片的上传功能,将图片保存到数据库,并在页面上显示出来。 首先,我们需要创建一个Action类来处理用户上传的图片。这个Action类通常会包含一个方法,如`execute()...
当用户提交表单时,Struts会自动将表单数据填充到ActionForm Bean的相应属性中,以便在控制层进行处理。 表单验证主要通过覆盖ActionForm的`validate()`方法来实现。这个方法会在用户提交表单后,Action类执行之前...
在Struts框架中,ActionForm类是用于封装请求参数并传递到Action类进行业务逻辑处理的关键组件。当ActionForm中的属性涉及到对象数组时,处理方式就变得稍微复杂一些。以下将详细介绍如何处理ActionForm属性中存在...
在Struts1.x中,文件上传主要依赖于`org.apache.struts.upload`包中的类。最常用的是`MultipartRequestHandler`,它实现了Servlet API中的`HttpServletRequestWrapper`接口,允许处理multipart/form-data类型的请求...
在 Struts1 中实现用户登录功能通常包括以下几个步骤: 1. **创建表单类**:首先需要定义一个表单类(例如 `LoginForm`),该类用于封装用户输入的数据。 2. **创建 Action 类**:接着定义一个 Action 类(例如 `...
在这个主题中,我们将深入探讨如何在Struts1中实现图片上传功能。首先,我们需要了解图片上传的基本流程,包括前端表单设计、后端接收与处理以及文件存储。 1. **前端表单设计** 在HTML页面中,我们需要创建一个...
ActionForm是Struts1中的数据绑定组件,通常用于接收和封装用户输入的数据。动态ActionForm则允许在运行时根据用户请求动态地创建和配置ActionForm实例。这种方式提高了灵活性,使得表单字段的数量和类型可以根据...
校验框架是Struts1中的一个重要组件,用于验证用户输入数据的有效性和完整性。 Struts1的校验框架主要分为两部分:ActionForm和Validator。ActionForm对象用于接收和封装用户从视图层提交的数据,而Validator则负责...
1. `<html:html>`标签:这是Struts HTML标签库的基础,它可以设置`locale`属性,用于处理国际化,如果未指定`locale`对象,系统会从请求头的`accept-language`中获取。此外,还可以设置`lang`属性,替代Struts 1.2...
在Struts1.2中,`validate`机制是用于处理表单验证的重要部分,它帮助开发者在用户提交数据之前检查输入的有效性,确保数据的完整性和安全性。 ### 一、`validate`机制概述 `validate`机制是Struts1.2中处理表单...
在Struts中,ActionForm对象用于封装用户表单数据,并且可以实现表单数据的验证功能。当表单数据不符合预期时,可以通过ActionForm对象来捕获这些错误,并将其返回给用户。下面将详细介绍如何在ActionForm中实现错误...