工作周报7.25-7.30

来源:互联网 发布:windows 2008 r2 编辑:程序博客网 时间:2024/04/30 07:41

先回答上周的问题,我在新的路径中配置model类,编译后映射不了。
而原因是我没有在resource路径下的applicationContext.xml中添加我的路径,以至于Spring无法找到我新增的路径的各个类,当然也就映射不到model类了。
添加路径声明在
<property name="annotatedPackagePrefixes">
下的list添加。
这次任务工作量不多,就是对一个数据类型的增删改查,表只有三个,指标项(我要操作的数据)表,指标项审核表和计算方法表。这周我写的是指标项增删改查和审核的初型,暂还没用到计算方法表。而我这周的收获最多的就是对这个框架的熟悉。
上周主要做了实体类的创建和映射,在做完这步后我从前台开始入手,先画了个数据增加的页面。然后我要弄清楚前台数据传入后台的方式。
这里要知道,前台到后台,一般都是调用action来实现的,而我这周接触的action类型有四种。
1.不带参数的,只是单独打开另一个页面的action,调用实例如:

function addColumn(){        mini.open({            url: "/hzrsmh/portal/f11010101/columnAddIndex.action",            title: "创建指标项", width: 600, height: 600,allowResize:false,            onload: function () {},            ondestroy: function (action) {                grid.reload();            }        });    }

在这个jsp中,我创建了个点击新增按钮就会触发的function,然后它会调用url中的columnAddIndex.action,而在f11010101Action.xml中我定义了columnAddIndex.action:

<action name="columnAddIndex" class="navigateAction">            <result name="success">/WEB-INF/pages/portal/f11010101/addColumn.jsp</result>        </action>

它的class是navigateAction,就是不进行任何操作,只是单纯打开定义的jsp。
2.带参数的action调用,如:

function modifyColumn(){        var row = grid.getSelected();        if(row){            mini.open({                url: "/hzrsmh/portal/f11010101/columnModifyIndex.action?dataid="+row.dataid,                title: "指标项修改", width: 1028, height: 960,allowResize:false,                ondestroy: function (action) {                    grid.reload();                }            });        }else{            Wssip.util.showTips('请先选择指标项!',2000);        }    }

与上相同,也是打开一个jsp,但会在该jsp中传入指定的参数。
3.请求类action,这种一般在初始化页面时用到,即向后台传递一个参数,后台根据参数获取该表中一列或多列的数据,转化成json数据,传递到前台。(注:前台与后台数据定义的方式是,前台定义控件的名称与后台实体类的名称相同,数据会自动匹配。)如:

function doReset() {        MiniUtils.maskwin("加载中...");        Wssip.util.request("<c:url value='/portal/f11010101/loadColumn.action'/>",{dataid:${param.dataid}},"POST",function(data){            MiniUtils.unmaskwin();            var form =new mini.Form("modifyForm");            form.setData(data);        },function(data){            MiniUtils.unmaskwin();            mini.get("btn_submit").disable();            MiniUtils.error(data.msg);        });    }

4.前台向后台传递数据。与body中定义一句:

<c:url var="FORM_URL" value="/portal/f11010101/modifyColumn.action"></c:url>

这样可以用form.data获取各个控件的数据,再传入后台如:

function doAdd(button){        var form =new mini.Form("modifyForm");        form.validate();        if(!form.isValid()){            return;        }        button.disable();        json =form.getData();        MiniUtils.maskwin("提交中...");        Wssip.util.submit("${FORM_URL}",json,function(data){            MiniUtils.unmaskwin();            mini.alert("添加成功!");        },function(data){            MiniUtils.unmaskwin();            button.enable();            MiniUtils.error(data.msg);        });        }

在熟悉了该框架的前后台数据交换后,做这个东西就不难了,不过中间还是会因为粗心出各种各样的BUG,慢慢成长吧!
添加:@override和@Transient的作用,@Override标注该方法是重载的,如果该方法形式与父类不同,编译器会发出警告。
再添加:ORACLE 的sequence作用和定义方法,sequence的作用就是自动生成主键编号,而sequence的定义方法是,先在数据库中创建设置,再在实体类中添加标注。
@Transient标注该属性不与数据库映射,ORM框架将忽略该属性。
总结:东西好多,慢慢学吧

0 0
原创粉丝点击