javabean操作的工具类

 1 /**
 2      * 从页面参数获取值来更新bean
 3      * 使用说明:页面input框框name值要和javabean的属性值相同
 4      */
 5     public static void updateBean(HttpServletRequest request,Object bean){
 6         Enumeration<?> em = request.getParameterNames();
 7         while(em.hasMoreElements()){
 8             String param = em.nextElement().toString();
 9             if(jodd.bean.BeanUtil.hasProperty(bean, param)){
10                 try {
11                     Class<?> type = jodd.bean.BeanUtil.getPropertyType(bean, param);
12                     String value = request.getParameter(param);
13                     if (Clob.class.getName().equals(type.getName())) {
14                         Clob clob = ClobUtil.StrToClob(value);
15                         jodd.bean.BeanUtil.setProperty(bean, param, clob);
16                     }else if(Blob.class.getName().equals(type.getName())){
17                         Blob blob = BlobUtil.stringToBlob(value);
18                         jodd.bean.BeanUtil.setProperty(bean, param, blob);
19                     }else if("int".equals(type.getName())){
20                         if(!"".equals(value)){
21                             int num = Integer.parseInt(value);
22                             jodd.bean.BeanUtil.setProperty(bean, param, num);
23                         }
24                     }else {
25                         jodd.bean.BeanUtil.setProperty(bean, param, value);
26                     }
27                 } catch (Exception e) {
28
29                 }
30             }
31         }
32     }

这个小方法很有意思,仅仅用了一个request和普通的javabean对象就将form表单提交的参数封装进了javabean里面,即使现在很多技术可以实现formbean到javabean的映射,但是很多代码在项目进度允许的情况下,而且也实现了我们需要功能的时候,我会觉得更有意思。

使用方法:

1)创建一个javabean

 1 package com.sunyard.bean;
 2
 3 public class Department {
 4     private Integer deptId;
 5
 6     private String deptName;
 7
 8     public Department() {
 9     }
10
11     public Department(Integer deptId, String deptName) {
12         this.deptId = deptId;
13         this.deptName = deptName;
14     }
15
16     public Integer getDeptId() {
17         return deptId;
18     }
19
20     public void setDeptId(Integer deptId) {
21         this.deptId = deptId;
22     }
23
24     public String getDeptName() {
25         return deptName;
26     }
27
28     public void setDeptName(String deptName) {
29         this.deptName = deptName == null ? null : deptName.trim();
30     }
31
32     @Override
33     public String toString() {
34         return "Department [deptId=" + deptId + ", deptName=" + deptName + "]";
35     }
36
37 }

2)创建一个index.jsp

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10     <base href="<%=basePath%>">
11
12     <title>My JSP ‘index.jsp‘ starting page</title>
13
14     <meta http-equiv="pragma" content="no-cache">
15     <meta http-equiv="cache-control" content="no-cache">
16     <meta http-equiv="expires" content="0">
17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
18     <meta http-equiv="description" content="This is my page">
19     <!--
20     <link rel="stylesheet" type="text/css" href="styles.css">
21     -->
22     <script type="text/javascript" src="WEB-INF/static/js/jquery-1.7.2.js"></script>
23     <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css">
24     <script src="http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script>
25     <script src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script>
26
27     <script type="text/javascript">
28
29
30     </script>
31
32   </head>
33
34 <body>
35     <form action="test.do" method="post">
36         <input type="text" name="deptId"/>
37         <input type="text" name="deptName"/>
38         <input type="submit" value="submit"/>
39     </form>
40 </body>
41 </html>

这里需要注意的是input的name属性必须和javabean的属性名称一样,才能做到后台的formbean到javabean的映射。

4)创建servlet

 1 package com.sunyard.controller;
 2
 3 import javax.servlet.http.HttpServletRequest;
 4 import javax.servlet.http.HttpServletResponse;
 5
 6 import org.springframework.stereotype.Controller;
 7 import org.springframework.web.bind.annotation.RequestMapping;
 8
 9 import com.sunyard.bean.Department;
10 import com.sunyard.util.BeanUtil;
11
12 @Controller
13 public class EmpController {
14
15     @RequestMapping("test.do")
16     public void test(HttpServletRequest request,HttpServletResponse response){
17         Department bean = new Department();
18         BeanUtil.updateBean(request, bean);
19         System.out.println(bean);
20     }
21 }

5)输出结果

时间: 2024-10-10 21:32:58

javabean操作的工具类的相关文章

c语言中字符串操作的工具类

 1.编写头文件 #define _CRT_SECURE_NO_WARNINGS //#pragmawarning(disable:4996) #include <stdio.h> #include <stdlib.h> #include <string.h> struct CString { char *p;        //保存字符串首地址 int reallength; //实际长度 }; typedef struct CString mystring;//

关于很简单的设计模式,ui-dao-database,以及JavaBean和util工具类

关于很简单的设计模式,ui-dao-database,以及JavaBean和util工具类 24. 三 / J2EE / 没有评论 简单的j2ee设计模式, UI通过DAO层访问数据库或者xml文档,数据库返回的数据通过JavaBean 封装,JavaBean是实体类是数据库中表的映射. dao层,数据持久层 JavaBean   数据传送对象,实体类. 其他的公共类 图中是基本的设计模式,和如何建立相应的包. 简单的例子: student实体类对应表中的字段 dao层,增删改查 调用DAO层方

poi操作Excel工具类

在上一篇文章<使用poi读写Excel>中分享了一下poi操作Excel的简单示例,这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完成的功能是:读取Excel.写入Excel.合并Excel的功能.

List操作的工具类

1 /** 2 * <p>list操作的工具类</p> 3 */ 4 public class ListUtil { 5 /** 6 * 过滤掉list里面才重复项 7 * 8 * @param list 9 * @return List 10 */ 11 public static List<String> filterRepeat(List<String> list){ 12 int length = list.size(); 13 for(int i

Java 借助poi操作Wold工具类

? Apache封装的POI组件对Excel,Wold的操作已经非常的丰富了,在项目上也会经常用到一些POI的基本操作 这里就简单的阐述POI操作Wold的基本工具类,代码还是有点粗造的,但是不影响使用. 这个类包含了一些对文本进行换行,加粗,倾斜,字体颜色,大小,首行缩进,添加边框等方法.分享给大家学习下: Apache POI的组件: ApachePOI包含用于处理MS-Office的所有OLE2复合文档的类和方法.该API的组件列表如下 - POIFS(不良混淆实现文件系统) - 此组件是

操作集合工具类:Collections

Collections是常用的操作Set.List.Map的工具类.提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了将集合对象设置为不可变.对集合对象实现同步控制等方法. reverse 反转: /** * Reverses the order of the elements in the specified list.<p> * * This method runs in linear time. * * @param list the list whose elements a

自己封装的poi操作Excel工具类

该工具类主要完成的功能是:读取Excel.汇总Excel的功能.在读取时,可以设定开始和结束读取的位置.设定是否读取多个sheet.设定读取那个或者那些sheet等.在汇总时,如设定是否覆盖目标文件.设定是否比较检查重复内容.设定检查重复的列索引等功能. package com.tgb.ccl.excel.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; impo

java与javascript对cookie操作的工具类

Java对cookie的操作 package cn.utils; import java.util.HashMap; import java.util.Map; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 操作cookie的工具类(默认cookie的有效路径为"/")

(4)文本挖掘(一)——准备文本读写及对Map操作的工具类

文本挖掘是一个对具有丰富语义的文本进行分析,从而理解其所包含的内容和意义的过程.文本挖掘包含分词.文本表示.文本特征选择.文本分类.文本聚类.文档自动摘要等方面的内容.文本挖掘的具体流程图可下图所示: 我的项目是以复旦大学中文语料库和路透社英文语料库为数据集的,都是有类别的两层目录文本集. 不管你要做什么,你首先都要先读取文本,为了方便后面的操作,我写了几个工具类,这里先将文本读取Reader类.文本写入Writer类和对Map的各种操作MapUtil类. Reader import java.