More Related Content Similar to Grails GAE Event App with YUI CSS Plugin Similar to Grails GAE Event App with YUI CSS Plugin (20) More from Tsuyoshi Yamamoto More from Tsuyoshi Yamamoto (20) Grails GAE Event App with YUI CSS Plugin2. ( )
DTP Web
90%Grails
JGGUG( )
Grails 9-11
Grails Acegi Plugin
http://d.hatena.ne.jp/mottsnite/
11. $ grails create-app eventer
$ cd eventer
grails.project.plugins.dir="work_tmp/plugins"
grails.project.work.dir="work_tmp/work"
development {
dataSource {
dbCreate = "update"
url = "jdbc:hsqldb:file:work_tmp/devDB;shutdown=true"
14. package org.jggug
class Event {
/** */
String eventName
/** */
Date eventDate
/** */
String eventDesc
/** */
String place
/** */
String groupName
/** */ package org.jggug
String content class EventController {
def scaffold = true
Date dateCreated }
Date lastUpdated
static constraints = {
}
}
16. class Event implements Serializable {
static mapping = {
id generator:'uuid.hex',
params:[type:'string']
}
String id
...
static constraints = {
eventName nullable:false,blank:false
eventDate nullable:false,blank:false
eventDesc nullable:false,blank:false
place nullable:false,blank:false
groupName nullable:false,blank:false
content nullable:false,
blank:false,maxSize:4000
dateCreated display:false
lastUpdated display:false
}
17. event.label =
event.eventName.label =
/** */
String eventName /**(.*)*/n(.*) (.*)
/** */ event.$3.label = $1
Date eventDate
/** */
String eventDesc event.eventName.label =
event.eventDate.label =
event.eventDesc.label =
22. $ grails install-plugin calendar
<head>
<calendar:resources lang="en" theme="tiger"/>
<calendar:datePicker name="eventDate"
defaultValue="${eventInstance?.eventDate}"
dateFormat="%Y/%m/%d" />
25. yui-css ( )
grails install-plugin http://grails.jp/sample/grails-yui-css-2.7.0-M2.zip
grails yui-css
<head> content=”main” “yui-t1”
<meta name="layout" content="main" />
<meta name="layout" content="yui-t1" />
40. $ grails install-plugin app-engine
Do you want to use JPA or JDO for persistence? (jpa, jdo)
jpa
grails-app/conf/
datastore-indexes.xml
persistence.xml
grails-app/conf/Config.groovy GAE
google.appengine.application="jggugv4"
Grails
43. $ grails install-plugin gorm-jpa
resources.groovy entityManagerFactory transactionManager
entityManagerFactory(org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean)
{
beanClassLoader = ref("classLoader")
}
transactionManager(org.springframework.orm.jpa.JpaTransactionManager) {
entityManagerFactory = entityManagerFactory
}
datanucleus-enhancer*.jar
cp $APPENGINE_HOME/lib/tools/orm/datanucleus-enhancer-1.1.4.jar lib
46. def save = {
def eventInstance = new Event(params)
Event.withTransaction{
if(eventInstance.save(flush:true)) {
flash.message = "Event ${eventInstance.id} created"
redirect action:"show", id:eventInstance.id
}
else {
render view:'create', model:[eventInstance:eventInstance]
}
}
}
54. $ grails app-engine package
$ rm target/war/WEB-INF/lib/jul-to-slf4j-1.5.6.jar
$ appcfg.sh update ./target/war
75. import com.google.appengine.api.datastore.Entity
def person = new Entity("person")
person['name'] = " "
println person['name']
person.age = 31
println person.age
//
person.save()
//
person.delete()
//
def q = new Query('person')
def list = datastoreService.prepare(q).asList(
Builder.withLimit(20).offset(0) )
77. <system-properties>
<property name="file.encoding" value="UTF-8"/>
<property name="groovy.source.encoding"
value="UTF-8"/>
</system-properties>