- 浏览: 64689 次
- 性别:
- 来自: 福州
最新评论
-
xpjava:
大侠您好! 我在使用easyui 的时候发现 他与grails ...
100%拿来主义——基于EasyUI和Grails的应用"框架"?! -
热带翎羽:
alanland 写道已经两年没更新了?有更新啦,公司行为,不 ...
基于Grails 1.3.7和extjs 3.4.0的模板框架(附源代码) -
热带翎羽:
alanland 写道这个不应该用国际化来做吗国际化可以实现, ...
Grails的Controller中如何获取Domain模型 -
alanland:
这个不应该用国际化来做吗
Grails的Controller中如何获取Domain模型 -
alanland:
已经两年没更新了?
基于Grails 1.3.7和extjs 3.4.0的模板框架(附源代码)
文章列表
大致步骤
1) 新建一个UIView的子类(@interface HypnosisView : UIView)
2) 自定义绘图函数:(void) drawRect:(CGRect)rect
确定绘图范围:CGRect bounds=[self bounds]
获得CGContext, CGContextRef context=UIGraphicsGetCurrentContext();
进行绘图操作
3) 将新视图绑定到主窗口
在HypnosisterAppDelegate中添加一个成员变量HypnosisView *view;
确定绘图范围
在didFinishLaunchi ...
我们可以通过发送消息给对象出发特定动作,但对象发送某些变化的时候用什么方法通知我们呢?对的,通过回调函数(callback)。对象在特定事件发生的时候,就会调用对应的回调函数,触发业务逻辑。
在iPhone的开发框架中,回调函数通过所谓的代理(Delegation)来实现,举例说明:每个UITextView对象都有一个delegate属性,该属性指向一个特定的对象,所谓特定指的是该对象遵从特定的协议(Protocol),这个与Java中的Interface应该是同一概念,指的是预定义方法的集合,如:
@protocol UITextViewDelegate
@optional
- ...
1) 两种内存管理中常犯的错误
* 过早释放(premature deallocation)过早释放了仍有程序应用的内存块
* 内存泄露(memory leaks)未释放已无程序应用的内存块
2) Object C中的内存分配不使用malloc(size)/free(buffer)这样的方式,而是用对象的alloc和dealloc方法来进行分配和释放,但对象不接受来自外部的dealloc消息,而是通过引用计数来控制。
3) 可以通过Class *instance=[[[Class alloc] init] autorelease]创建自动释放的对象,该对象指针会加入NSAutorelease ...
思路:
1) Interface Builder制作界面
2) 头文件中增加Outlet和事件响应函数
3) 建立界面与代码的关联
4) 添加实际代码(初始化、按键响应等)
效果:
代码:
//
// QuizAppDelegate.h
// Quiz
//
// Created by bruce.lin on 6/21/11.
// Copyright 2011 __MyCompanyName__. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface QuizAppD ...
知识点:
1) iPhone的SDK是一个面向对象的库,窗口的基类是UIWindow,可视组件的基类是UIView,如:UIButton继承至UIView
2) 可视组件的添加方式:
* 通过编程动态创建并添加至UIWindow
* 通过Interface Builder可视地添加
3) Interface Builder输出文件XIB是界面的XML化得描述,NIB文件时最终进入应用发布包的文件(由于文件更小解析更快)
4) Inspector窗口-调整属性; Library-控件库; Doc-模型;
5) XXXAppDelegate是应用的控制器(MVC中的C)负责V和M的同步的状态控制
6 ...
启动iPhone开发学习
- 博客分类:
- iPhone
看着同学朋友们都整了iPhone,一时冲动也搞了一个,想想也不能浪费了,准备学习开发,相关准备如下:
1) macbook pro 2G with Snow Leopard 10.6.7
2) iPhone CDMA 4.2.8
近期准备学习:
iPhone Programming: The Big Nerd Ranch Guide, 471页
准备1个月内学习完毕,发文自勉之。
标准的M-M做法:
class User{
static hasMany=[roles:Role]
String name
}
class Role{
static belongsTo = User
static hasMany=[users:User]
String name
}
使用方法:
Role roleUser=new Role(name: "ROLE_USER").save()
Role roleAdmin==new Role(name: "ROLE_ADMIN").sa ...
效果:
string
无需转换
string inList
{fieldLabel: '${cgDomainProperties.string2.chinese}',name: 'string2',xtype: 'combo',store: new Ext.data.SimpleStore({ fields:['values'], data:[['选择1'],['选择2'],['选择3']]}), emptyText:'请选择${cgDomainProperties.string2.chinese}',mode: 'local', triggerAction: ...
功能:根据Domain定义自动生成CRUD
效果图:
代码:
<% import grails.persistence.Event %><% import org.codehaus.groovy.grails.plugins.PluginManagerHolder %><%=packageName%>
<% boolean hasHibernate = PluginManagerHolder.pluginManager.hasGrailsPlugin('hibernate') %><%
def output(p,cp)
...
类定义:
class Book{
static domain=[pkg:"application.",name:"book",class:"Book",chinese:"书籍"]
}
动态加载代码:
outputPath="./output"
generatingClasses=["Book"]
String[] loadingPaths = ['./input']
engine = new GroovyScriptEngine(loadingPat ...
Grails原生的scaffolding机制所生成的代码主要用于模型验证,在实际中基本无法直接在项目中使用,主要原因如下:
生成的CRUD中的代码过于简单,不包含:搜索(Ajax)、Tooltip、表单分组/分栏等
Domain模型中没有包含对所生成的View层代码的控制信息和基础信息
现有的Domain模型,如果通过attributes进行自定义的扩展不符合Grails的整体思路
无法实现单一模型对多个View的情况,如:针对互联网版本和针对手机客户端版本
针对以上问题,如果可以通过引入Domain元数据的方式,通过元数据中的基础信息和控制信息,生成相互联系的Gomain/Contro ...
Grails是一个构建于Java和Groovy上的动态Web应用框架。她以包括Spring、Hibernate和SiteMesh等成熟领先的J2EE框架为基础,将基于规约的开发乐趣带给Java和Groovy开发者的同时,也保护他们已使用数年之久的Java开发资源。
新功能&改进
新特性:基于Groovy 1.7.5
新功能:基于命名的查询现在支持排序
基于命名查询的列表方法目前支持静态列表方法一样的参数,如:排序字段、排序方式、是否大小写敏感等:
Person.recentPublications.list(sort: 'title', order: 'desc', ignor ...
国庆节的一半走在折腾这个应用,由于是个人的第一个WEB开发,所以走了不少弯路 :-) 废话不说了,上图:
开发环境:
Grails 1.3.4
Acegi 0.5.3
class-diagram 0.5.2
实现功能:
基于Acegi的权限管理框架
基于JQuery EasyUI 1.2的Tab布局
遇到的几个问题和收获:
1) 如何通过iframe新建TAB页
<a href="javascript:void(0)" class="easyui-linkbutton" plain="true& ...
插件功能:
安装后插件可以自动生成项目的UML类图(通过:http://localhost:8080/yourApp/classDiagram访问)
插件安装:
grails install-plugin class-diagram
运行效果:
根据Graisl的手册,Grails构建配置的核心就是 grails.util.BuildSettings 类,它包含了大量有用的信息。它控制了哪些类被编译、应用程序依赖什么以及其他类似的设置。 自Grails 1.1版本发布后,应用插件的安装目录默认被调整到USER_HOME目录下,这个给应用的开发带来了一些不便,特别是用到的插件没有完全中文化的情况,这个小技巧是将Grails框架内的预定义目录进行调整,步骤如下:
1) 修改$GRAILS_HOME/src/java/grails/util(如:C:\JAVA\GRAILS\src\java\grails\util)的: BuildSett ...