`
lijunaccp
  • 浏览: 160573 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
既然Grails已经提供了大量<g:>标签,那么你也应该不会对可以创建自已怕标签感惊讶。可能让你感到意外的是创建它非常容易。 1.创建自定义标签 命令行输入grails create-tag-lib Footer,它会在grails-app/taglib目录下创建一个FooterTagLib.groovy空模板,它也会创建相应的测试类。 class FooterTagLib { def thisYear={ out<<new Date().format('yyyy') } } 这就是创建一个新的<g:thisYear/>标签的全部工作,仅仅只是 ...
在index.gsp页面会发现<head>部分中的<meta>标签 <head> <title>Welcome to Grails</title> //告诉你有一个名为main.gsp的模板在grails-app/views/layouts目录下 <meta name="layout" content="main" /> </head> 注:Grails用到了一个流行的模板库,叫做SiteMesh,就是把两个GSP给拼接到一起 ...
在工具栏找到导入数据字典->从PowerDesigner保存的pdm字典文件导入(*.pdm) 会在左侧生成节点-右键->导出->word 关于PowerDesigner的使用可以在我收藏中找到
对grails的内置数据库,刚开始接触会很奇怪,为什么每次启动服务器,创建的数据都没有了。 原因: 1.grails内置的数据库是hsqldb 2.查看grails-app/conf/DataSource.groovy文件 dataSource { //数据源的公共部分 pooled = true driverClassName = "org.hsqldb.jdbcDriver" username = "sa" password = "" } hibernate { cache. ...
领域类: 1.Race.groovy package com.rt class Race { String name Date startDate String city String state BigDecimal distance BigDecimal cost Integer maxRunners=100000 static hasMany=[registrations:Registration] static constraints = { name(blank:false,maxSize:50) star ...
在test/integration目录中,建一个集成测试类 代码如下: package com.rt import groovy.util.GroovyTestCase; class RaceIntegrationTests extends GroovyTestCase { void testRaceDatesBeforeToday(){ def lastWeek=new Date()-7 def race=new Race(startDate:lastWeek) assertFalse "验证失败", race.valid ...
当创建领域类时,会同时生成测试类 在test/unit目录下可以找到 当你在生成的测试类中编写好测试代码时,命令行中进入工程目录,输入:grails test-app 则会在控制台打出测试结果,也可以在target/test-reports/html目录下用IE打开index.html,会看到工程的所有测试类测试结果,如果只想测试单个类,如:Race,则在命令行中输入:grails test-app Race 相关代码如下: 领域类: package com.rt import java.math.BigDecimal; class Race { String nam ...

自定义验证

    博客分类:
  • VM
注册时,不希望用户填过去的时间。 以下方法无效: class Reg{ //... Date regDate static constraints = { //... regDate(min:new Date()) //new Date()是在每次启动服务器时赋值 } } 以上方法理论上没问题,但是可能和我们预期的不一样,就是因为这种方法是在启动服务器时设置,这相当于是设置了一个固定值。 有效的方法是自定义验证: class Reg{ //... Date regDate sta ...

增加约束

class Reg{ String name int age //通过constraints闭包增加对字段约束 static constraints = { name(blank:false, maxSize:50) age(min:1,max:150) } }
class Reg{ String name int age String birthday //通过constraints闭包指定字段顺序 static constraints = { name() age() birthday() } }
static mapping方法不只是做些关闭时间自动生成,数据库表与类,字段与属性的映射之外,还可以做如下事情: 一.想返回一个Domain类按日期排序 class Reg { Date startDate //其它属性略 static mapping={ sort "startDate" } } 二.领域类的生命周期事件 class Reg { //其它略 def beforeInsert={ //... } def beforeUpdate={ //... } ...
特殊属性名: class Reg { Date dateCreated //Grails将自动在第一次向数据库保存实例时填上这个值 Date lastUpdated //Grails将在每次更新数据到数据库时填上这个值 static mapping={ autoTimestamp false //关闭时间自动保存 } }
运行grails工程时,有时会出现tomcat的8080端口被占用: 解决方法: 一.命令行中输入:grails -Dserver.port=9090 run-app 二.可以在$GRAILS_HOME/scripts/_GrailsSettings.groovy找到 serverPort = getPropertyValue("server.port", 8080).toInteger() 把8080永久性地改为其它端口
准备条件: 1. 建WEB工程:ssh2 2. 建数据库ssh2,表user 3. 导入struts2,hibernate,spring包,注意包冲突,另导入commons-dbcp.jar, commons-pool.jar数据库连接池包 具体步骤如下: 1. 实体类 1.1 User.java package com.ssh2.bean; public class User { private int id; private String firstname; private String lastname; private int age; pu ...
准备条件: 1. 创建数据库hibernatespring,表person 2. 建工程hibernatespring,导入hibernate和spring包 具体步骤: 1.Person.javqa package com.test.bean; public class Person { private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id ...
Global site tag (gtag.js) - Google Analytics