一、搭建环境
1、下载JqueryEasyUI包 http://www.jeasyui.com/download/index.php
2、打开MyEclipse创建WebProject。
3、将下载下来的JqueryEasyUI包解压后放到到WebRoot下。如下图所示
二、包含文件
新建一个header.jsp文件,将需要用到的JqueryEasyUI文件引进去,这样,以后要用到JqueryEasyUI直接包含这个文件就可以了,就不用每次都要引用:
header.jsp
<link rel="stylesheet" href=/blog_article/"jquery-easyui-1.3.2/demo/demo.css" type="text/css"></link> <link rel="stylesheet" href=/blog_article/"jquery-easyui-1.3.2/themes/icon.css" type="text/css"></link> <link rel="stylesheet" href=/blog_article/"jquery-easyui-1.3.2/themes/default/easyui.css" type="text/css"></link> <script type="text/javascript" src=/blog_article/"jquery-easyui-1.3.2/jquery-1.8.0.min.js"></script>/index.html <script type="text/javascript" src=/blog_article/"jquery-easyui-1.3.2/jquery.easyui.min.js"></script>_/pre/index.html>三、测试一下
新建一个jsp文件
layout.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <!-- 把刚刚的那个header.jsp文件包含进去,里面就有了JqueryEasyUI所需要的文件了 --> <jsp:include page="header.jsp"/> <title>JqueryEasyUI的Layout</title> </head> <body> <div class="easyui-layout" style="width:600px;height:400px;"> <div data-options="region:'north',title:'North Title',split:true" style="height:100px;"></div> <div data-options="region:'south',title:'South Title',split:true" style="height:100px;"></div> <div data-options="region:'east',iconCls:'icon-reload',title:'East',split:true" style="width:100px;"></div> <div data-options="region:'west',title:'West',split:true" style="width:100px;"></div> <div data-options="region:'center',title:'center title'" style="padding:5px;background:#eee;"></div> </div> </body> </html>
发部项目后运行:在地址栏中输入http://localhost:8080/JqueryEasyUI/layout.jsp,如图
OK,环境我们已经搭建好了,接下来就可以慢慢学习了。
作者:tian_4238 发表于2013-3-26 22:00:44 原文链接阅读:24 评论:0 查看评论
在使用EF框架之前,要确定你的VS已经安装了EF包,我用的是VS2012自带的5.0版本,.NET版本要求4.0或更高。
1 打开EF项目后,新建个实体数据模型,如下:
2 点击添加,如下图,并选择“从数据库生成”,继续“下一步”
3 如下图示,默认情况下,你向导窗口中不一定有链接字符串:
4 点击“新建连接”,如图示:
5 选择“更改”按钮,以选择SQLite数据库:
注意:如果你的这一步中没有“System.Data.SQLite Database File”选项,需要先安装SQLite驱动,具体步骤请google下。
6 选择“System.Data.SQLite Database File”后点击确定,进入如下图示:
7 点击“Browse...”选择Web/App_Data目录下的db.s3db数据库文件,再点击“确定”,进入如下图示:
8 选中“将App.Config中的实体连接设置另存为:”,并输入为“DbEntities”,再点击“下一步”:
9 选中“表”(所有的数据表会自动选中),以及下面的两个复选框:“确实所生成对象名称的单复数形式”和“在模型中包括外键列”,修改“模型命名空间”为“DbModel”后点击“完成”。
此时,系统会自动生成DbContext对象以及实体类。打开 “DbModel.demx”后如下:
10 此时再看下EF项目的结构,如下图示:
下一篇开始编写数据访问层。
今天该怎么形容呢,怎一个郁闷了得,本来是报名参加蓝桥杯比赛的,刚开始都没有人参加,所以被老师教唆着去报名了,后来人多了,学院掏不起那报名费了,就弄出一个考试,悲剧的是我都块1年多没看过java了,竟然上来就给我弄出个java语法,全部都是java语法,什么编译是否正确,如若正确,输出什么,各种语法知识,最后连关键字都上来了,苦逼的我早就忘光了,结果很悲剧的没通过,你说一个蓝桥杯考的都是算法题,结果那学院的老师出成了语法题,就这么把我刷了,如果真是考算法,我自认为我还是可以的。真是太讨厌了,当初就不该受不了诱惑去报名的,狗屎,我脑子搭线了。谁让我java最基础的东西都不会呢,哎,感叹一下,哪天花点时间看看java去,老实说这种东西看看,记忆一下就会了,难道java还能比javascript还灵活,javascript我都这么深入了,一个最基础的java语法还能把我难住。。不说了,越说越郁闷。还有一件略微兴奋的事,淘宝的一个leader打电话给我了,大概问了我一下情况,不知道有没有机会进行电面,这个我还是挺期待的呢。毕竟淘宝一直都是我梦想中的公司哦。提到这,还是得感谢一下我的一位学长---天哥,是他发动资源帮我找到了一个在淘宝的学长,然后学长给了我一个淘宝leader的微博,正好看到他在招人,于是就发了简历过去,期待能有好收获吧。。屌丝,,也要有逆袭的心。。继续我们的javascript设计模式。
1 继承----减少重复代码,弱化耦合
1.1 类式继承--通过函数声明类、用关键字new来创建实例。
function Person(name){
this.name = name;
}
Person.prototype.getName = function(){
return this.name;
}
var student = new Person('John Smith');
student.getName();
/* Class monitor. */
function Monitor(name,books){
Person.call(this,name);
this.book = books;
}
Monitor.prototype = new Person();
Monitor.prototype.constructor = Monitor;
Monitor.prototype.getBooks = function(){
return this.books;
}
这里用到了原型链的知识,如果这块不太懂得话,可以看看我前面的javascript学习笔记,里面有讲到prototype。简单的说,就是在访问对象的某个成员时,如果这个成员未见于当前对象,那么javascript会在prototype属性所指的对象中查找它。如果在那个对象中也没有找到,就会继续沿着原型链继续查找(类似一个指针,指向父亲对象),按照这种模式串成的那个链就是原型链。所以继承的时候只需要将子类的prototype设置为指向超类的一个实例即可。
Monitor.prototype.constructor = Monitor是因为在让Monitor继承Person时,其constructor属性被抹除了。创建新实例的过程仍然很简单的。
1.2 extend函数--简化类的声明,可以派生子类的整个过程包装在一个名为extend的函数中。
function extend(subClass,superClass){
var f = function(){};
f.prototype = superClass.prototype;
subClass.prototype = new f();
subClass.prototype.constructor = subClass;
subClass.superclass = superClass.prototype;
if(superClass.prototype.constructor == Object.prototype.constructor){
superClass.prototype.constructor = superClass;
}
}
function Monitor(name,books){
Monitor.superClass.constructor.call(this,name);
this.book = books;
}
extend(Monitor,Person);
Monitor.prototype.getBooks = function(){
return this.books;
}
//有了superClass属性,就可以直接调用超类中的方法,然后重定义超类的该方法
Monitor.prototype.getName = function(){
var name = Monitor.superClass.getName.call(this);
return name+ ', Monitor of'+this.getBooks().join(',');
//真漂亮的代码
}
上面的代码真的写的非常漂亮,可以慢慢琢磨琢磨。
1. 它添加了一个空函数f,并将用它创建的一个对象实例插入原型链中,这样做可以避免创建超类的新实例,因为它可能会比较庞大,而且有时超类的构造函数有一些副作用,或者会执行一些需要进行大量计算的任务。
2. extend函数提供了superclass属性,这个属性可以用来弱化Monitor和Person之间的耦合,extend函数的最后三行代码确保超类的prototype的constructor属性已被正确设置(即使超类就是object类本身)。
3.我的一点疑问,哎function Monitor中,Monitor.superclass属性是什么时候开始获得值的,因为我觉得只有在执行extend(Monitor,Person)之后,superclass才会获得值,那在这之前就调用,是否无法获得superclass的值呢。
类式继承,用这种方式创建的对象都有一套该类的所有实例属性的副本.每一个实例方法都只存在一份,但每个对象都有一个指向它的链接
1.3 原型式继承--直接创建一个对象,对象随后可以被新的对象重用
var Person = {
name:'default name',
getName:function(){
return this.name;
}
}; //Person是一个对象字面量
Monitor = clone(Monitor);
Monitor.books = [];
Monitor.getBooks =