zoukankan      html  css  js  c++  java
  • java自动生成表单简单实例

    数据库表设置

    1. tb_form(form表单)

    字段

    类型

    约束

    说明

    Id

    Int

    主键

    主键

    Formid

    Varchar2(20)

    唯一

    Form表单id的值

    Action

    Varchar2(20)

    唯一

    Form表单action的值

    Method

    Varchar2(20)

    非空

    Form表单Method的值

    Formtitle

    Nvatchar2(50)

    非空

    Form表单的标题头信息

    Orderby

    Int

    非空

    同一申请流程的表单排序

    Flowid

    Int

    外键

    申请流程的外键

    Remark

    Nvatchar2(50)

    表单描述说明

    1. tb_form_module(form的组件表)

    字段

    类型

    约束

    说明

    Id

    Int

    主键

    主键

    Fromid

    Int

    外键

    Tb_form表的外键

    Inputtype

    Varchar2(20)

    非空

    Input组件type的值

    Inputid

    Varchar2(20)

    非空

    Input组件id的值

    Inputname

    Varchar2(20)

    非空

    Input组件name的值

    notnull

    boolean

    非空

    默认值为false,用于判断字段是否有非空校验

    Inputtitle

    Nvatchar2(100)

    非空

    Input的显示标题

    Remark

    Nvatchar(100)

    字段说明

    在数据库创建表信息,这里就不介绍。

    在java项目中创建对应表的Hibernate实体和映射文件。这里也不介绍了,可以自己搜索文档。

    创建自动生成表单的Action类。

    Action代码:

    import java.util.Iterator;
    import java.util.List;
    import com.opensymphony.xwork2.ActionSupport;
    
    import ssh.Tb.*;
    import ssh.gx.HibernateDB;
    
    public class createForm extends ActionSupport {
        //Form实体类,对应tb_form表
        private Form form;
        //FormModule实体类,对应tb_form_module表
        private FormModule fmodule;
        //页面输出内容变量
        private StringBuffer sb=new StringBuffer();
        //数据访问类,定义全局变量
        private HibernateDB hdb;
        
        
        public Form getForm() {
            return form;
        }
        public void setForm(Form form) {
            this.form = form;
        }
        public FormModule getFmodule() {
            return fmodule;
        }
        public void setFmodule(FormModule fmodule) {
            this.fmodule = fmodule;
        }
    
        
        public StringBuffer getSb() {
            return sb;
        }
        public void setSb(StringBuffer sb) {
            this.sb = sb;
        }
        
        /**
         * 自动生存表单
         * @return string
         */
        public String createForm(){
            hdb=new HibernateDB();
            //查询Form表单信息
            List<Object> list=hdb.querySql("from Form");
            //生存From表单
            for(int i=0;i<list.size();i++){
                form=(Form)list.get(i);
                sb.append("<table><form ");
                sb.append("action=""+form.getAction()+"" ");
                sb.append("method=""+form.getMethod()+"">");
                sb.append("<caption>"+form.getFormtitle()+"</caption>");
                //添加表单内容
                List<Object> listl=hdb.querySql("from FormModule where formid="+form.getId());
                //使用迭代器
                Iterator<Object> it=listl.iterator();
                while(it.hasNext()){
                    fmodule=(FormModule)it.next();        
                    //判断是否为非空
                    if(fmodule.getNotnull()>0){
                        //添加必填标识
                        sb.append("<tr><td>"+fmodule.getInputtitle()+"<font style="color: red;">*</font></td>");
                    }else{
                        sb.append("<tr><td>"+fmodule.getInputtitle()+"</td>");
                    }
                    sb.append("<td><input name=""+fmodule.getInputname()+"" type=""+fmodule.getInputtyoe()+""/>");
                    sb.append("</td></tr>");
                }
                sb.append("<tr><td><input type="submit" value="提交"/></tr></td></form></table>");
            }
            return "cform";
        }
    }

    jsp页面使用Struts标签输出表单:

    必须添加

    <!-- 引入Struts标签 -->
    <%@taglib  prefix="s"  uri="/struts-tags" %>
    <!-- s:property标签的escape属性控制是否编译html标签,fase编译html标签,true否 -->
    <s:property value="sb" escape="false"></s:property>

    数据库插入信息

    Tb_Form表

    Tb_Form_module

    运行结果:

  • 相关阅读:
    详解应对平台高并发的分布式调度框架TBSchedule
    利用httpd配置虚拟目录创建下载站点
    在centos7下用http搭建配置svn服务
    centos7/rhel7下配置PXE+Kickstart自动安装linux系统
    centos7破解安装confluence5.9.11
    centos7破解安装jira6.3.6(含Agile)
    mysql5.6做单向主从复制Replication
    解决忘记mysql中的root用户密码问题
    centos7安装mysql5.6(rpm包安装)
    centos7/RHEL7最小化系统安装gnome图形界面
  • 原文地址:https://www.cnblogs.com/gynbk/p/6588229.html
Copyright © 2011-2022 走看看