抽奖程序总结

抽奖程序总结
1.entity,model,dao,service,controller关系

//不允许更新的
updatetable = false;
//删除标记(伪删除)
@Column(name = "del", unique = false, nullable = false, columnDefinition = "smallint    default 0")
    private int del;
  1. model存需要用到的数据,但不一定对数据库进行操作,
    例如伪删除(用删除标记)

2.SpringMVC传参

(Model model) model.addAttribute(); 
//传参时要注意数据类型与表中相同 否则会报404

3.数据类型
Integer是一个类,可以在int和String之间相互转换,可以存0,null;
定义数据类型的时候不定义int,都定义成Integer

4.id这样写

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
//把id传到后台findById方法,并在后台查询该id对应的那条数据
var id = rows[0].id;
window.location.href="/ddcrm/sharer/cj/"+id;
//抽完奖后更新prize参数
function update(result) {   

    sharer.prize = result;

    var posting = $.post(webBasePath + 'sharer/updatecj', sharer,function() {
        $('#dataList').datagrid('reload');
                    });
        }
//获取当前时间,把当前时间赋值给date
    SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    //String类型
    String date = formater.format(new Date());  、
    //Date类型
    Date nowdate=formater.parse(date);
//获取当前上传文件的文件名,文件大小,文件类型
//文件上传的<input>name值
    var input = document.getElementById("sharerUpload");
    input.addEventListener('change',readFile,false);

var params = {};

function readFile(){ 

var file = this.files[0]; 

params.name = file.name;
params.type = file.type;

}
//后台取值request.getParameter("name");因为前台传的是jason字符串,可以直接获取到值。
//前台EL表达式可取值:
Sharer sharer = new Sharer();
sharer = sharerService.getSharerById(id);
model.addAttribute("sharer",sharer);
//js通过 a标签的onclikc 传值并调用js里的方法
return "<a href='javascript:void(0)' onclick = downLoad(\""+ name +"\",\""+ url2 +"\") >下载附件</a>"
//前台js通过get方法往后台传值时 如果有中文或者特殊字符 需要转码2次,在后台还需转一次
//前台转码
var url=encodeURI(encodeURI(downloadUrl)); 
//后台转码
String = URLDecoder.decode(downloadUrl, "UTF-8");

下载文件:

//前台点击的按钮
formatter : function(value, row, index) {
                                    var dowloadId = row.id;
                                    console.log("downLoadId:" + dowloadId);
                                    url1 = row.sharerFileUpUrl;                                 
                                    downloadUrl = url1.replace(/\\/g,"\\\\");                                   
                                    if (name != null) {                                 
                                            return "<a href='javascript:void(0)' onclick = downLoad(\""+ downloadUrl +"\") >下载附件</a>" 
                                    }
                                }
//前台下载方法
function downLoad(downloadUrl){
                    var url=encodeURI(encodeURI(downloadUrl));
                    console.log("url1: " + JSON.stringify(url));                    
                    var url = webBasePath + '/sharerupload/download?downloadUrl='+url; 
                    console.log("url2: " + JSON.stringify(url));
                    window.open(url); 
                } 
//后台(FileUtil是已经写好的方法)
   /**
     * 下载文件
     * 
     * @return
     * @return sharer/upload
     */
    @RequestMapping(value = "/download")
    public void downloadFile(HttpServletResponse response, HttpServletRequest request, String downloadUrl) {
        try {
            String msg;

            String filePath = URLDecoder.decode(downloadUrl, "UTF-8");
            System.out.println("filePath------->" + filePath);

            String fileName = filePath.substring("D:\\media\\ddcrm\\Sharer\\".length(), filePath.length());
            System.out.println("fileName------->" + fileName);

            FileUtil.downloadFile(response, filePath, fileName);
            msg = "下载成功!";
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }  
//在js里,最好不要通过el表达式获取后台的值,建议用下列方法
<input type="hidden" data-options="required:false" id="roles" name="roles" value="${currentUser.roles}"  ></input>//jsp里代码

var roles = $('#roles').val();//js里代码
//js中获得当前毫秒数
var nowDate = new Date();
nowDate = nowDate.getTime(); 

//js中将时间(date)转化为毫秒数
var dateHaoMiao = (new Date(date)).getTime();

**

后期

**
1.js里最好不要定全局变量

2.script标签末尾async,放在head里。这样做可以一边下载js(只能同时下载两个js),一边解析html
<script type="text/javascript" src="path/to/script1.js" async></script>  
<script type="text/javascript" src="path/to/script2.js" async></script>

3.js里用if作判断时一次最好只写一个同类型的条件,这样就可以针对不同的条件给出对应的showMsg();对用户友好。

4.全局变量var = ,页面每加载一次全局变量就加载一次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值