老杨说话的地方
  • 首页
  • 关于老杨
  • 博客时间
  • 文章分类
    • 人工智能
    • 人生感悟
      • 共产主义
      • 能量哲学
      • 自然辩证法
    • 信息技术
      • C#笔记
      • LaTex
      • Linux
      • RIME
      • Ubuntu&Debian
      • WordPress
      • 基于Java的B/S系统构建
      • 开源开发
      • 病毒相关
      • 编程的坏习惯
      • 网上办公系统
    • 往事随风
      • 我在大学那几年
      • 童年趣事
      • 精彩生活
    • 情感随笔
    • 文学创作
      • 小说
    • 生活记录
      • 博士进行中
      • 美国一年
      • 老杨学游泳
    • 评论杂谈
  • 留言本
我是老杨
张驰有度 宠辱不惊
  1. 首页
  2. 信息技术
  3. 网上办公系统
  4. 正文

动态调用JavaBean的set方法

2008年12月12日 5217点热度 0人点赞 2条评论

动态调用JavaBean的set方法

在我写的框架中,我用一个中央控制器来控制所有的URL请求,然后将请求转发,这里就有一个问题,就是前台提交的Form表单并没有直接提交给处理的模块,而是先提交给了中央控制器,由中央控制器来转发给相应的模块,所以我的做法是使用中央控制器将所有的Form表单数据存放在一个叫做FormBean的类中封装起来,然后将这个类以对象的形式存放到request范围呢,然后将request对象提交给处理模块,模块通过得到FormBean这个对象来得到From表单的数据。

所以首先需要解决的问题就是如何动态的将Form表单的数据封装到FormBean中,因为中央控制器并不知道Form表单中都有那些数据域,也不知道FormBean中都有哪些属性,所有的这一切,都应该是动态执行的,对所有的FormBean都适用的。

我已经不完美的解决的这个问题,说不完美是因为FormBean的属性需要是public的,否则的话无法成功set进去,还需要进一步解决一下。这里给出代码:

Java语言: 临时自用代码@代码发芽网
public Object setProperty(String ClassPath,HttpServletRequest req)
{
    try{
        Class ClassName=Class.forName(ClassPath);
        Field ClassField[]=ClassName.getDeclaredFields();
        Object ClassInstance=ClassName.newInstance();
        for(int i=0;i<ClassField.length;i++)
        {
            String Property=ClassField[i].getName();
            ClassField[i].set(ClassInstance, req.getParameter(Property));
        }
        return ClassInstance;
    }catch(Exception e)
    {
        e.printStackTrace();
    }
    return null;
}

有些地方需要解释一下:这里是一个函数进行处理,传递进去的参数有FormBean的类名,当然需要包括包名,如"beans.entity.User",还有一个参数是request对象,用来得到form表单的数据,这里要注意,form表单的数据域名字必须和FormBean的属性名字相同,否则set方法将会出错。

其他的没有什么需要解释的了,核心代码只有一句,也比较容易理解,这里我不能理解的是如果调用的是set方法,为什么属性不是public不行呢?还在进一步研究中。

标签: java javabean servlet
最后更新:2026年11月04日
老杨

老杨

博士,非博学之士;讲师,讲所学所知。糊涂半生,虚度半世,唯愿平淡快乐,度过此生。

点赞

评论(2)

写下你的评论
  1. sunshineyxp
    sunshineyxp2008年12月12日 13:41

    为什么不在config.xml中设置一个属性对应于要使用的formbean呢?或许我说的与你指的不一致

    1. 老杨
      老杨作者2008年12月12日 18:14

      @sunshineyxp 回复sunshineyxp, 不是一回事,我已经知道是需要使用哪一个FormBean了,但是并不知道这个FormBean都有哪些属性

发表评论

选择代码语言
选好后在光标处插入代码块,把示例文字换成你的代码即可。

老杨

老杨

博士,非博学之士;讲师,讲所学所知。糊涂半生,虚度半世,唯愿平淡快乐,度过此生。

搜索
最新 热点 随机
简航:极简开源个人导航SimpleNav 关于机器人的发展 遥遥领先 开源密码生成工具SimplePassword 痛苦根源 同步日历-我的第一款鸿蒙应用(鸿蒙CalDav客户端) 别成为AI的奴隶 给阿嬷的情书 信息焦虑综合症 PUA
为多用户安装Anaconda及其使用方法WordPress主题发布:kratos_YangLaTex中上划线\overline和\bar的使用说明LaTex中设置字体的正确方法那一年,2009使用Windows7自带Windows Media Center播放RMVB影片幼儿园:回味童年童年趣事之气门芯这几天的事儿无插件实现WordPress留言本
WPS的优秀 动态调用JavaBean的set方法 郭德纲来青岛 精彩生活之那年啤酒节 挺不错的网站统计工具:雅虎统计 CSS中DIV嵌套高度自适应问题 点名游戏:关于Semor 站在黄石上(贴图篇) 在Ubuntu下使用ies4linux安装IE Ubuntu下Firefox Flash插件中文乱码解决
最近评论
  • 实在抱歉,这两天比较忙,没看邮箱,没有名额了已经,再问问其他老师吧。
    老杨·1 周前·留言本
  • 老师你好,这学期考虑接毕设指导吗?具体可以老师您可以查看邮箱,申请已提交到邮箱
    BroMikey·1 周前·留言本
  • 感谢支持。可以买个鸿蒙设备玩玩
    老杨·3 周前·同步日历-我的第一款鸿蒙应用(鸿蒙CalDav客户端)
  • 没有鸿蒙设备,吆喝一声支持老杨的产品
    乱云/Akay·3 周前·同步日历-我的第一款鸿蒙应用(鸿蒙CalDav客户端)
  • 先从减少手机使用时间开始。
    shanshan·2 月前·信息焦虑综合症
  • 所以必须得自己下定决心痛改前非,而不是跟自己讲条件。
    shanshan·2 月前·第二青春计划失败
  • 这种平台挺多的,但是应该没啥用,能有啥情绪价值比躺着刷手机更好呢?
    老杨·2 月前·第二青春计划失败
  • 已经遇到了,额外支付了170,托运登机行李,还不是托运行李。
    老杨·2 月前·春秋航空让人长见识
  • 那很好,恭喜你
    老杨·2 月前·PUA
  • 可以尝试改变。
    老杨·2 月前·信息焦虑综合症
  • 现在很多人离开AI已经不知道怎么工作了。
    老杨·2 月前·别成为AI的奴隶
  • 建议开发一个适合P人的工作生活计划平台,完不成没什么惩罚、但是完成了有大大的情绪…
    shanshan·2 月前·第二青春计划失败
文章分类
选择分类
  • 人工智能13
  • 人生感悟121
    • 共产主义1
    • 能量哲学12
    • 自然辩证法12
  • 信息技术235
    • C#笔记6
    • LaTex12
    • Linux18
    • RIME4
    • Ubuntu&Debian21
    • WordPress1
    • 基于Java的B/S系统构建10
    • 开源开发3
    • 病毒相关3
    • 编程的坏习惯4
    • 网上办公系统9
  • 往事随风41
    • 我在大学那几年18
    • 童年趣事12
    • 精彩生活5
  • 情感随笔113
  • 文学创作69
    • 小说68
  • 生活记录220
    • 博士进行中6
    • 美国一年22
    • 老杨学游泳4
  • 评论杂谈169
关注公众号

COPYRIGHT © 2026 老杨说话的地方 版权所有

THEME KRATOS YANG Modified BY 老杨

鲁ICP备17014997号-4

鲁公网安备 37021302000754号