`

终于体验到"struts formbean的最佳实践是String"这句话的强大意义了

阅读更多

这断时间一直在用struts做开发,还规定尽量用struts的标记库,所以最进对struts的标记库研究得比较多。直到今天才发现,前面研究的东西都是白费了,最终都是用不上了。

前面写过用struts tag对formbean 属性的显示,花了不少时间研究出了对Integer ,BigDecimal类型属性的显示问题,struts formbean是不支持Date类型的属性的。也看到了”struts formbean的最佳实践是String“这句话,也看到过formbean获取这些数据,首先都是以string类型获取到,然后再转成自己所需类型这样的文章。但是一直抱着偷懒的心态,一直想尽量用BeanUtils.copyProperties(object,formbean)这样的方法来获取formbean的内容,懒得自己一个一个属性的获取和赋值。

但是今天出现的一个问题,使我幡然醒悟。

问题描述如下:

1,我定义了一个formbean,里面有两个BigDecimal属性。

2,然后我在jsp页面上要新增一个对象,提交时报一个javax.servlet.ServletException: BeanUtils.populate异常。

我发现是因为没有给那2个BigDecimal属性附初值的原因。

想想以前看过的内容,我想formbean获取属性值时,也许也是会这么获取内容

new BigDecimal(request.getParameter("xxxx"));由于xxx是null,所以就报错误了。

 

我没有看过struts的源代码,这只是我自己想当然的想法,不知道对不对,哪位高人看后,不吝赐教,非常感谢。

分享到:
评论
4 楼 抛出异常的爱 2007-04-16  
我还以为你是给别人讲你的经历。。
3 楼 guanfish 2007-04-16  
不知道哪位大侠指点一下啊,小弟跪谢了。
2 楼 guanfish 2007-04-11  
lintomny     12 小时前
你这个问题我遇到过,并不是像你说的那样处理成String,当然使用String确实是个好办法,但是这样一来在Action处就要做一些功夫了。
我觉得最好的办法是在Struts Formbean里面的Setter和Getter里进行处理, 不要麻烦做Action的人去处理这些你分内的事。the bucket stops here

这个想法是很好,但是我怎么在“Formbean里面的Setter和Getter里进行处理”进行处理呢?我做调式时,当一个BigDecimal 属性值为空时,尚未进入Setter和Getter方法就已经报javax.servlet.ServletException: BeanUtils.populate 错误,又如何能进行处理呢????能否给个详细点的说明或者是一两行关键的代码,谢谢
1 楼 lintomny 2007-04-10  
你这个问题我遇到过,并不是像你说的那样处理成String,当然使用String确实是个好办法,但是这样一来在Action处就要做一些功夫了。
我觉得最好的办法是在Struts Formbean里面的Setter和Getter里进行处理, 不要麻烦做Action的人去处理这些你分内的事。the bucket stops here

相关推荐

    Struts1.2动态FormBean加验证功能的一个例子

    Struts1.2动态FormBean 加 验证功能 的一个例子

    struts1和struts2的区别

    Struts1.x 必须继承org.apache.struts.action.Action或者其子类,表单数据封装在FormBean中。Struts 2无须继承任何类型或实现任何接口,表单数据包含在Action中,通过Getter和Setter获取。 虽然,在理论上Struts2的...

    Struts 1 学习文档

    Struts 1 学习文档 Struts 1 是一个基于 MVC 模式和面向对象设计的 Open Source 项目,由 Apache 基金会 ...Struts 1 是一个功能强大且广泛应用的 Web 应用程序框架,能够帮助 Java 开发者快速开发 Web 应用程序。

    struts1&struts2

    2.Struts2和Struts1.x的... Struts1.x 必须继承org.apache.struts.action.Action或者其子类,表单数据封装在FormBean中。 Struts 2无须继承任何类型或实现任何接口,表单数据包含在Action中,通过Getter和Setter获取。

    谈谈你对Struts的理解。

     4.action执行完后要返回显示的结果视图,这个结果视图是用一个ActionForward对象来表示的,actionforward对象通过struts-config.xml配置文件中的配置关联到某个jsp页面,因为程序中使用的是在struts-config.xml...

    Struts中FormBean的日期类型字段赋值自动转化

    NULL 博文链接:https://zywang.iteye.com/blog/413003

    Struts原理、开发及项目实施

    Struts原理、开发及项目实施 Holen 2002-9-12 <br/>1、 摘要 2、 关键词 3、 Framework 4、 Struts的起源 5、 Struts工作原理 6、 Struts安装 7、 一个实例 8、 Struts优缺点...

    Struts html:checkbox框初始默认是选中的解决方法

    在Struts中几种情况可以使标签初始就是选中的,Formbean里面该Property的值设为 1.on 、2.yes 、3.true 这三种情况都是可以实现默认选中的。 注:如果不选中,最好把Property的设置为””,因为在Action中得到...

    struts高级实战进阶

    传智播客的struts高级实战进阶 MVC模式的回顾 回顾Struts的请求处理时序图 使用超连接的技巧 封装Formbean数据时的问题 防止表单重复提交 使用复选框的技巧 使用下拉列表框的技巧 文件上传 DispatchAction的应用 ...

    json java读取 formbean操作

    NULL 博文链接:https://haixiami200411.iteye.com/blog/736554

    Myeclipse开发struts+hibernate+spring新手入门--环境配置---项目开发示例

    Myeclipse开发struts+hibernate+spring新手入门---环境配置----项目开发示例 Myeclipse开发struts+hibernate+spring小记 开发前准备工作: 1、下载eclipse3.1版本 下载地址: 2、下载Myeclipse插件 下载地址: 3...

    动态验证formbean

    介绍如何使用动态formbean的例子

    Struts使用技巧和注意事项

    ----Struts 使用技巧---- 1 Struts validate 1.1 使用ActionForm的validate()验证 总体思路:这个验证是没有添加验证框架的验证,而是直接通过ActionForm的validate()方法进行系统验证, 进行验证要处理三个方面的...

    struts2 (对象.属性)注入

    在struts2中已经不需要struts1中的formbean了。在struts1中每次提交表单的时候,表单中的属性值都先赋予formbean,然后操作formbean。但是现在struts2中用对象.属性名来给对象赋值,然后操作这个对象。而这些对象都...

    java 经典面试题 于网络分享

    7. struts框架中,关于FormBean,下列哪些说法是正确的: A FormBean是一种数据bean,主要用来封装表单提交上来的数据,并把这些数据传递给Action B 在FormBean中可以对页面上传递来的参数进行一下格式上的验证...

    struts2验证示例

    使用struts2的验证模式,并在里面使用了formbean的模式。

    Struts框架

    Struts运行环境1.1Struts1.0和1.1版本当前主要有两个版本,struts1.0release和struts1.1beta3。Struts1.0和1.1差别很大,主要有两点:Struts1.1中引用了很多apache其他项目的类包,如:xml解析、日志、验证等,因此...

    struts源码分析

    struts的源码分析,整个流程,ActionServlet开始创建formbean开始

    struts的html标签的源码分析

    struts的html标签的源码分析,关键是如何创建Formbean对象和action中的写法,加.do还是可以不加

Global site tag (gtag.js) - Google Analytics