如何保存ActionForm中未编辑的字段为NULL
来源:互联网 发布:看门狗2优化 编辑:程序博客网 时间:2024/04/29 09:17
Struts中,如果ActionForm里某些字段没有编辑(即没有输入值),提交后直接保存到数据库时,这些字段保存为""(String)或0(int),可是在实际开发中,可能需要将其保存位null,如何实现呢?
最直观的办法:判断字段是否为空,如果为空,则返回null
最简单的办法:修改ActionServlet配置下init-param,具体如下
<init-param>
<param-name>convertNull</param-name>
<param-value>true</param-value>
</init-param>
最近又看到一个办法:用自己的ActionServlet类覆盖原有的ActionServlet,在自己的ActionServlet类中,重载init()方法,为struts解析重新注册一些改造过的表单元素数据解析方法,设定各种类型的默认值为null,代码如下:
/**
* 用户自己的 ActionServlet 实现类,覆盖 struts 的 ActionServlet
* <p>Title: </p>
* <p>Description: 2006-01-13</p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: eqzhou</p>
* @author eqzhou
* @version 1.0
*/
public class MyActionServlet extends ActionServlet {
/**
* 重载init()方法
* 为struts解析重新注册一些改造过的表单元素数据解析方法
*/
public void init() throws ServletException {
super.init();
// ConvertUtils.register(new BigDecimalConverter(null), BigDecimal.class);
// ConvertUtils.register(new BigIntegerConverter(null), BigInteger.class);
// ConvertUtils.register(new FloatConverter(null), Float.class);
// ConvertUtils.register(new IntegerConverter(null), Integer.class);
// ConvertUtils.register(new LongConverter(null), Long.class);
// ConvertUtils.register(new ShortConverter(null), Short.class);
// ConvertUtils.register(new SqlTimeConverter(null), Time.class);
// ConvertUtils.register(new SqlTimestampConverter(null), Timestamp.class);
/*
* Struts的 actionForm 的属性的类型如果为 java.sql.Date 的时候,则不可以为 null,
* 以下方法,使其可以为 null .
*/
ConvertUtils.register(new SqlDateConverter(null), Date.class);
}
}
然后在web.xml中,配置为你的 MyActionServlet
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>这里可以是你的包的路径.MyActionServlet </servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
- 如何保存ActionForm中未编辑的字段为NULL
- IBatisNet中将DateTime字段保存为null
- 在vb.net中如何判断字段为null
- oracle中修改已有字段数据类型为clob的方法以及ssh框架中如何保存clob字段
- mysql如何取出为null的字段并进行更新
- mysql如何取出为null的字段并进行更新
- ThinkPHP如何获取某字段为NULL的记录
- 关于SQL server中字段值为null的查询
- 数据库中字段为null和空带来的麻烦
- sqlserver中字段为null的查询方法
- 向数据库中插入默认值为null的字段
- Oracle中判断字段值为NULL的函数
- sql查询表中为 null 的字段
- 查询数据库中为null字段的数据
- MySQL中可为空的字段设置为NULL还是NOT NULL
- 用DataGrid演示某字段为null保存xml时节点丢失的问题
- 用DataGrid演示某字段为null保存xml时节点丢失的问题
- mysql中查询字段为null或者不为null
- oracle傻瓜手册--分析session中SQL执行情况
- 操作系统学习常见疑惑问与答[接口规范部分]—问题1-4
- 语言的学习(11)--名称,地址,作用域再理解
- 电信“商务领航” PK 网通“EPOWER”
- 给技术高手们的建议(转帖)
- 如何保存ActionForm中未编辑的字段为NULL
- 新网游公司(自主研发)运营策略
- Visual Studio Information for Borland Delphi Developers
- Visual Studio vs Delphi (3)
- 笑傲江湖曲-汇编操纵扬声器发声(源码)
- 愿意为你
- 关于"谁是一坨屎"故事的版本考查
- 心事
- 一个实际工作中的sql的模拟