NEO

蜀道难,难于上青天!

导航

2013年5月27日

摘要: chapter01listing-1.1 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Follow me!</title> 5 <link rel="stylesheet" type="text/css" href="../styles/core.css"/> 6 <script type="text/javascript" src="http://ajax.googleapis.c 阅读全文

posted @ 2013-05-27 17:42 页面载入出错 阅读(165) 评论(0) 推荐(0) 编辑

2013年5月19日

摘要: Command对象上一节中的多数据绑定中的表单内容和user对象、profile对象的字段是完全一一对应的,如果不是一一对应就会出现问题,这时,我们需要用到command对象。假如,重写register功能,加入一个密码验证功能,验证密码字段在user对象是不存在的。1、修改UserController,增加一个UserRegistrationCommand类grails-app\controllers\com\grailsinaction\UserController.groovy 1 ...... 2 class UserRegistrationCommand { 3 String... 阅读全文

posted @ 2013-05-19 11:45 页面载入出错 阅读(204) 评论(0) 推荐(0) 编辑

摘要: 数据绑定应用场景:一个表单更新多个领域对象,在这个应用中,注册一个用户需要更新user和profile两个对象,我们新建一个register表单grails-app\views\user\register.gsp 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Register New User</title> 5 <meta name="layout" content="main"/> 6 <style> 7 dd { 8 te 阅读全文

posted @ 2013-05-19 11:12 页面载入出错 阅读(208) 评论(0) 推荐(0) 编辑

摘要: service:让程序更健壮和可维护1、实现PostServicegrails create-service com.grailsinaction.post 1 package com.grailsinaction 2 3 class PostService { 4 /*如果发生错误,数据库回滚*/ 5 boolean transactional = true 6 7 Post createPost(String userId, String content) { 8 def user = User.findByUserId(userId) 9 ... 阅读全文

posted @ 2013-05-19 10:57 页面载入出错 阅读(154) 评论(0) 推荐(0) 编辑

2013年5月18日

摘要: 内容简介控制controller、model、view之间的作用实现自定义url和永久链接使用过滤器使用service让业务逻辑和页面跳转分离数据绑定和错误处理使用command对象,处理比较棘手的验证上传和读取照片文件一、控制controller、model、view之间的作用controller的要领http://ip:端口/应用程序名/controller/action/参数id1、显示用户所有发帖在controllers/com.grailsinacition.PostController/建立一个timeline action1 def timeline = {2 ... 阅读全文

posted @ 2013-05-18 19:27 页面载入出错 阅读(378) 评论(0) 推荐(0) 编辑

2013年5月17日

摘要: 1、Criteria(条件查询)Criteria可以通过createCriteria 或者 withCriteria 方法来使用 1 def user = User.findByUserId(params.user) 2 def entries = Post.createCriteria().list { 3 and { 4 eq('user', user) 5 between('created', new Date()-1, new Date()) 6 tags { 7 ... 阅读全文

posted @ 2013-05-17 16:30 页面载入出错 阅读(241) 评论(0) 推荐(0) 编辑

摘要: 上一节介绍了一个基本的动态查询器是怎么工作的,grails还有很多的动态查询器,我们来建一个测试来测试一下其他查询器的工作状况1、创建一个集成测试类grails create-integration-test com.grailsinaction.QueryIntegration创建一个测试方法testBasicDynamicFinders 1 package com.grailsinaction 2 3 import static org.junit.Assert.* 4 import org.junit.* 5 6 class QueryIntegrationTests { 7 8 ... 阅读全文

posted @ 2013-05-17 10:50 页面载入出错 阅读(252) 评论(0) 推荐(0) 编辑

2013年5月16日

摘要: 动态查询和实体查询1、实现一个简单的查询表单首先,在/grails-app/views/user/新建一个search.gsp,建立一个查询表单 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Search Hubbub</title> 5 <meta name="layout" content="main"/> 6 </head> 7 8 <body> 9 <formset>10 <legend&g 阅读全文

posted @ 2013-05-16 18:00 页面载入出错 阅读(281) 评论(0) 推荐(0) 编辑

摘要: 静态脚手架,生成和定制客户化代码1、首先生成静态脚手架代码方法一:grails generate-all com.grailsinaction.User这样会生成User对象的所有controller方法和view视图,如果系统中已经有User的Controller,生成时会提示是否覆盖方法二:grails generate-views com.grailsinaction.User这样只生成view视图生成的Controller包括如下actionaction名功能渲染的视图index定向到list()N/Alist分页显示实体list.gspshow显示一个域类的实例show.gspdel 阅读全文

posted @ 2013-05-16 17:25 页面载入出错 阅读(204) 评论(0) 推荐(0) 编辑

摘要: 上一节了解了基本脚手架的功能以及地方化的一些内容,这一节调整脚手架的CSS布局如果只是想改变程序的外观,可以直接调整/web-app/css/main.css。这里我们调整/grails-app/views/layouts/main.gsp文件,生成一个新的布局修改/grails-app/views/layouts/main.gsp 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Hubbub &raquo; <g:layoutTitle default="Welcome" 阅读全文

posted @ 2013-05-16 16:11 页面载入出错 阅读(228) 评论(0) 推荐(0) 编辑