http://www.tuicool.com/articles/7JRVv2
<%@ page import="com.mrhaki.grails.sample.Book" contentType="text/html;charset=UTF-8" %><html><head>
<title>Simple GSP page</title>
<meta name="layout" content="main"/>
<style>
p { margin-top: 20px; margin-bottom: 5px;}
</style></head><body>
<h1>Select</h1>
<p>Use title property of book for option values</p>
<g:select from="${Book.list()}"
optionKey="id"
optionValue="title"
name="bookSimple"/>
<p>Use closure for optionValue</p>
<g:select from="${Book.list()}"
optionKey="id"
optionValue="${{ book -> "${book.title} - ${book.isbn}" }}" name="bookCustom"/>
<g:set var="bookOptionValueFormatter"
value="${{ book -> "${book.title} (${book.isbn}, ${book.numberOfPages})" }}"/>
<p>Use bookOptionValueFormatter that is defined as variable on this page</p>
<g:select from="${Book.list()}"
optionKey="id"
optionValue="${bookOptionValueFormatter}"
name="bookVar"/>
<p>Use bookFormatter that is passed as a model property from SampleController.</p>
<g:select from="${Book.list()}"
optionKey="id"
optionValue="${bookFormatter}"
name="bookModel"/></body></html>
When we run the application and open the page in a web browser we get the following HTML source:
...<h1>Select</h1><p>Use title property of book for option values</p><select name="bookSimple" id="bookSimple" >
<option value="1" >It</option>
<option value="2" >The Stand</option></select><p>Use closure for optionValue</p><select name="bookVar" id="bookCustom" >
<option value="1" >It - 0451169514</option>
<option value="2" >The Stand - 0307743683</option></select><p>Use bookOptionValueFormatter that is defined as variable on this page</p><select name="bookVar" id="bookVar" >
<option value="1" >It (0451169514, 1104)</option>
<option value="2" >The Stand (0307743683, 1472)</option></select><p>Use bookFormatter that is passed as a model property from SampleController.</p><select name="bookModel" id="bookModel" >
<option value="1" >It (pages: 1104)</option>
<option value="2" >The Stand (pages: 1472)</option></select>...
转载于:https://blog.51cto.com/xiaosa/1685525