Download - Data Binding in Grails
![Page 1: Data Binding in Grails](https://reader035.vdocuments.us/reader035/viewer/2022070523/58ece1811a28abd8268b45bf/html5/thumbnails/1.jpg)
![Page 2: Data Binding in Grails](https://reader035.vdocuments.us/reader035/viewer/2022070523/58ece1811a28abd8268b45bf/html5/thumbnails/2.jpg)
Data Bindingin Grails
![Page 3: Data Binding in Grails](https://reader035.vdocuments.us/reader035/viewer/2022070523/58ece1811a28abd8268b45bf/html5/thumbnails/3.jpg)
Agenda
1. What is data binding?
2. What are the possible scenarios?
3. What options does Grails provides for data binding?
4. Security concerns
![Page 4: Data Binding in Grails](https://reader035.vdocuments.us/reader035/viewer/2022070523/58ece1811a28abd8268b45bf/html5/thumbnails/4.jpg)
Introduction to AWS CodeDeploy
• Single domain class form• Multiple instances of a domain
class• Associations• A domain object with file
![Page 5: Data Binding in Grails](https://reader035.vdocuments.us/reader035/viewer/2022070523/58ece1811a28abd8268b45bf/html5/thumbnails/5.jpg)
Single Domain Class
def save = {def b = new Book()b.properties = paramsb.save()
}
![Page 6: Data Binding in Grails](https://reader035.vdocuments.us/reader035/viewer/2022070523/58ece1811a28abd8268b45bf/html5/thumbnails/6.jpg)
Single Domain Class
def save = {def b = new Book(params) b.save()
}
def update = {def b = Book.get(params.id) b.properties = paramsb.save()
}
![Page 7: Data Binding in Grails](https://reader035.vdocuments.us/reader035/viewer/2022070523/58ece1811a28abd8268b45bf/html5/thumbnails/7.jpg)
BindData examples
// request parameters to a target objectbindData(target, this.params)
// exclude firstName and lastNamebindData(target, this.params,['firstName', 'lastName'])
// only use parameters starting with "author." e.g. author.emailbindData(target, this.params, "author")
![Page 8: Data Binding in Grails](https://reader035.vdocuments.us/reader035/viewer/2022070523/58ece1811a28abd8268b45bf/html5/thumbnails/8.jpg)
BindData examples
// exclude firstName and lastName and only useparameters starting with "author." e.g. author.emailbindData(target, this.params, ['firstName', 'lastName'], "author")
![Page 9: Data Binding in Grails](https://reader035.vdocuments.us/reader035/viewer/2022070523/58ece1811a28abd8268b45bf/html5/thumbnails/9.jpg)
Binding with Associations
class SomeCO{Date startDate; Date endDate;Project project
}<g:datePicker name="startDate"/><g:datePicker name="startDate"/><g:select name="project.id" from="${someList}" value="${project?.name}" optionKey="id"/>
def myAction{SomeCOsomeCO ->// perform action}
![Page 10: Data Binding in Grails](https://reader035.vdocuments.us/reader035/viewer/2022070523/58ece1811a28abd8268b45bf/html5/thumbnails/10.jpg)
Binding with Associations
class Book{String name Author author
}
<input type="text" name="book.name"<input type="text" name="author.name"
class Author{String name
}
def b = new Book(params['book'])def a = new Author(params['author'])
![Page 11: Data Binding in Grails](https://reader035.vdocuments.us/reader035/viewer/2022070523/58ece1811a28abd8268b45bf/html5/thumbnails/11.jpg)
Binding with Associations
<g:form action=”save”>Title:<input type=”text” name=”album.title” /> <br>Artist:<input type=”text” name=”artist.name” /><br>Song 1:<input type=”text” name=”songs[0].name”/><br> Song 2:<input type=”text” name=”songs[1].name”/><br> Song 3:<input type=”text” name=”songs[3].name”/><br>
</g:form>
![Page 12: Data Binding in Grails](https://reader035.vdocuments.us/reader035/viewer/2022070523/58ece1811a28abd8268b45bf/html5/thumbnails/12.jpg)
Addressing Security Concerns
Use Special Command Objects Use “excludes” parameter
![Page 13: Data Binding in Grails](https://reader035.vdocuments.us/reader035/viewer/2022070523/58ece1811a28abd8268b45bf/html5/thumbnails/13.jpg)
References / Attribution
DGG – Second Edition – Chapter 4http://grails.org/Controllers+-+Data+Binding
![Page 14: Data Binding in Grails](https://reader035.vdocuments.us/reader035/viewer/2022070523/58ece1811a28abd8268b45bf/html5/thumbnails/14.jpg)
License
This work is licensed under the Creative Commons Attribution-Non-commercial-Share Alike 3.0 License
![Page 15: Data Binding in Grails](https://reader035.vdocuments.us/reader035/viewer/2022070523/58ece1811a28abd8268b45bf/html5/thumbnails/15.jpg)
Contact us
Our Office
Client Location
Here's how the world's biggest Grails team is building enterprise applications on Grails!Click Here To Know More!
Have more queries on Grails? Talk to our GRAILS experts Now!
Talk To Our Experts