`
fantasy
  • 浏览: 506855 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

页面生成系统1.0-使用指南(开源)

阅读更多

       出场告白:

       这是一个通过配置一个javaBean,就能自动生成CRUD页面的程序。(添加页面,列表显示页面,详细信息显示页面)

       下载源代码:http://kiral.iteye.com/blog/67902

       指南:

        1。配置一个javaBean

        在类上面配置一个描述类的信息。

        在方法上配置描述方法的信息。

        javabean详细代码如下:

java 代码
  1. import org.quick.code.annotation.ClassDescription;   
  2. import org.quick.code.annotation.MethodDescription;   
  3.   
  4. @ClassDescription("用户")   
  5. public class User   
  6. {   
  7.     private Integer id;   
  8.   
  9.     private String name;   
  10.   
  11.     private String password;   
  12.   
  13.     private String memo;   
  14.   
  15.     public Integer getId()   
  16.     {   
  17.         return id;   
  18.     }   
  19.   
  20.     public void setId( Integer id)   
  21.     {   
  22.         this.id = id;   
  23.     }   
  24.   
  25.     @MethodDescription("备注")   
  26.     public String getMemo()   
  27.     {   
  28.         return memo;   
  29.     }   
  30.   
  31.     public void setMemo( String memo)   
  32.     {   
  33.         this.memo = memo;   
  34.     }   
  35.   
  36.     @MethodDescription("用户姓名")   
  37.     public String getName()   
  38.     {   
  39.         return name;   
  40.     }   
  41.   
  42.     public void setName( String name)   
  43.     {   
  44.         this.name = name;   
  45.     }   
  46.   
  47.     @MethodDescription("用户密码")   
  48.     public String getPassword()   
  49.     {   
  50.         return password;   
  51.     }   
  52.   
  53.     public void setPassword( String password)   
  54.     {   
  55.         this.password = password;   
  56.     }   
  57.   
  58. }   

 

             2。定制页面模板

         页面的模板是使用freemarker描述的。你可能根据自己项目的需要,自由定制这些模板。

         编辑页面的默认模板代码如下:

xml 代码
  1. <%@ page contentType="text/html;charset=UTF-8"%>  
  2. <%@ include file="/commons/taglibs.jsp"%>  
  3. <html>  
  4.     <head>  
  5.        ${title}信息编辑页面   
  6.     head>  
  7.     <body>  
  8.         <#list fields as field>  
  9.         <div id="${field.name}Div">  
  10.             <div class="formLabel">  
  11.                 ${field.description}:   
  12.             div>  
  13.             ${field.ui}   
  14.         div>  
  15.         #list>  
  16.     body>  
  17. html>  

         说明:

  •          ${title}:对应是javabean的类的描述,如:用户。
  •          ${field.name}对应的是字段的名称,如:name。
  •          ${field.name}对应的是字段的名称,如:用户姓名。

       3。定制页面的编辑控件

      页面的编辑控件,是可以按照你项目的需要来定制的。

xml 代码
  1. <UI>  
  2.     <TEXT>  
  3.         <!---->]]>  
  4.     TEXT>  
  5.     <PASSWORD>  
  6.         <!---->]]>  
  7.     PASSWORD>  
  8. UI>  
 
  •  4。生成代码

       执行下列代码,生成的页面,将打印在控制台下。

    java 代码
    1. PageCreator.build("User""list.ftl","edit.ftl","show.ftl");   

      5。代码预览

      下面是生成的编辑页面的预览:

    xml 代码

    1. <%@ page contentType="text/html;charset=UTF-8"%>  
    2. <%@ include file="/commons/taglibs.jsp"%>  
    3. <html>  
    4.     <head>  
    5.        用户信息编辑页面   
    6.     head>  
    7.     <body>  
    8.         <div id="memoDiv">  
    9.             <div class="formLabel">  
    10.                 备注:   
    11.             div>  
    12.                
    13.         <input name="model.memo" type="text" value="${model.memo}" maxlength="20" id="memo">input>  
    14.        
    15.         div>  
    16.         <div id="nameDiv">  
    17.             <div class="formLabel">  
    18.                 用户姓名:   
    19.             div>  
    20.                
    21.         <input name="model.name" type="text" value="${model.name}" maxlength="20" id="name">input>  
    22.        
    23.         div>  
    24.         <div id="passwordDiv">  
    25.             <div class="formLabel">  
    26.                 用户密码:   
    27.             div>  
    28.                
    29.         <input name="model.password" type="password" value="${model.password}" maxlength="20" id="password">input>  
    30.        
    31.         div>  
    32.     body>  
    33. html>  

     

     

  • 6。小结

        可能看了这么多觉得会很复杂,好像需要配置很多东西,其实不然。

        根据不同的项目,你的页面表现可能会不一样,所以需要按照2,3中所说的定制页面和编辑控件。

        但是针对一个项目只需要定制一次页面和控件,而后只需要配置javabean,就会自动产生编辑,显示,详细信息页面。

        其实每次当我去研读别人的指南的时候,也会发晕,有的描述不清楚,有的文字太长,所以我为大家提供了一个开发视频,大家可以先看看,再决定要不要看指南。

    • code.rar (813.8 KB)
    • 描述: 代码生成程序的演示
    • 下载次数: 359
    分享到:
    评论
    2 楼 fantasy 2007-04-05  
    suwu 写道
    哈哈,兄弟的代码生成思路特别啊。但感觉用户还需自行编pojo,而且好象并没有看到CRUD的代码生成,只是页面代码的生成。另外,好象也没有考虑实体之间关联关系的生成。

    兄弟我也写了个代码生成器,寄生于springside2,通过配置一个xml文件,来生成基于springside2的web程序。纯瘁用freemarker写成。

    也简单的做了个视频,有兴趣的载来看下。互相借鉴。
    http://www.iteye.com/topic/67843
    最新的加进了hibernate的支持。

    本来就只是个页面生成系统,只生成页面。基本上每个系统都需要创建pojo的,只要在pojo的基础上加上注释,就达到配置要求,而且这样也增加代码的可读性。
    我也看了下你的代码生成系统,恩,互相借鉴下。
    1 楼 suwu 2007-04-04  
    哈哈,兄弟的代码生成思路特别啊。但感觉用户还需自行编pojo,而且好象并没有看到CRUD的代码生成,只是页面代码的生成。另外,好象也没有考虑实体之间关联关系的生成。

    兄弟我也写了个代码生成器,寄生于springside2,通过配置一个xml文件,来生成基于springside2的web程序。纯瘁用freemarker写成。

    也简单的做了个视频,有兴趣的载来看下。互相借鉴。
    http://www.iteye.com/topic/67843
    最新的加进了hibernate的支持。

    相关推荐

      harmonyos1.0-react-example-filmdb:同构React+Flux电影数据库示例

      1.0 同构 React + Flux 电影数据库示例 完整的应用示例,包括在服务器端使用 koa 进行用户身份验证,以及在前端使用 React/Flux(Alt)。 还使用 koa-mongo-rest 生成 REST API,并使用 restful.js 来使用它们。 使用...

      新版Android开发教程.rar

      ----------------------------...• 优化的图形库 包括定制的 2D 图形库, 3D 图形库基于 OpenGL ES 1.0 (硬件加速可选) • SQLite SQLite SQLite SQLite 用作结构化的数据存储 • 多媒体支持 包括常见的音频、视频和...

      jfinal插件集合demojfinal-demo.zip

      在mysql里创建数据库jfinal_demo,运行maven插件 cn.dreampie:flyway-maven-plugin:1.0:clean和cn.dreampie:flyway-maven-plugin:1.0:migrate  生成数据库表结构 2.使用jetty运行项目,运行maven插件jetty:run 3....

      asp.net知识库

      在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中...

      java收银系统源码-pyspark-cheatsheet:PySpark备忘单-学习PySpark并更快地开发应用程序

      java收银系统源码PySpark 备忘单 此备忘单将帮助您学习 PySpark 并更快地编写 PySpark 应用程序。 这里的所有内容都是功能齐全的 PySpark 代码,您可以运行或适应您的程序。 这些片段在 CC0 1.0 通用许可证下获得...

      vc++ 开发实例源码包

      内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

      vc++ 应用源码包_1

      内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

      vc++ 应用源码包_2

      内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

      vc++ 应用源码包_3

      内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

      vc++ 应用源码包_6

      内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

      vc++ 应用源码包_5

      内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

      Tinyxml 源代码(VC6 & VS2005)

      TinyXML以Zlib许可来发布,所以你可以在开源或者商业软件中使用它。许可证更具体的描述在每个源代码文件的顶部可以找到。 TinyXML在保证正确和恰当的XML输出的基础上尝试成为一个灵活的解析器。TinyXML可以在任何...

      kscp:Kubernetes秘密控制平面

      Kubernetes Secrets Control Plane是一个开源项目,提供了一种将外部机密作为kubernetes资源进行管理的方法。 秘密永远不会真正存储在kubernetes中,而是存储在秘密管理系统中,并通过角色和角色绑定来控制对它们的...

      欧拉公式求圆周率的matlab代码-Curso_AeroPython:面向工程的Python入门课程

      2014年3月(标记v1.0) 第二版: 2014年10月 第三版: 2015年4月 第四版: 2018年3月 第五版: 2018年11月 保持学习 课程 [EN]面向科学家和工程师的Python课程 [这是] [EN] :Python,Linux,SQL,GitHub研讨会(EN...

    Global site tag (gtag.js) - Google Analytics