groovy在grails上的新特性,並且如果始終需要解決方案,可能會遇到一些定製問題。gsp頁面,帶有從之前選擇的select中獲得的未封閉的GSP表達式
我想創建兩個使用ajax選擇,一個填充基於另一個的信息。我在下面的例子是http://www.grails.org/AJAX-Driven+SELECTs+in+GSP。我也在使用腳手架,所以我不得不使用install-templates命令來獲取操作gsp文件的視圖。從模板中微調一下,我有一個工作的創建視圖,用於構建我的選擇。但是,輸入查詢這些選擇在一個錯誤的結果教程指定我不能工作了
Stack trace as below :
| Error 2013-01-12 16:11:46,582 [http-bio-8080-exec-3] ERROR errors.GrailsExceptionResolver - GrailsTagException occurred when processing request: [GET] /TimeTracker2/time/create
Unclosed GSP expression. Stacktrace follows:
Message: Error initializing GroovyPageView
Line | Method
->> 186 | doFilter in grails.plugin.cache.web.filter.PageFragmentCachingFilter
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 63 | doFilter in grails.plugin.cache.web.filter.AbstractFilter
| 1110 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 603 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 722 | run . . . in java.lang.Thread
Caused by GrailsTagException: Unclosed GSP expression
->> 33 | doFilter in \grails-app\views\time\create.gsp
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
我GSP低於你可以看到所有的表情都關閉......建議嗎?
<head>
<meta name="layout" content="main">
<g:set var="entityName" value="\${domainClass.propertyName}" />
<title>Create Time</title>
</head>
<body>
<a href="#create-{domainClass.propertyName}" class="skip" tabindex="-1"><g:message code="default.link.skip.label" default="Skip to content…"/></a>
<div class="nav" role="navigation">
<ul>
<li><a class="home" href="/TimeTracker2"><g:message code="default.home.label"/></a></li>
<li><g:link class="list" action="list"><!--g:message code="default.list.label" args="[entityName]" /-->Time List</g:link></li>
</ul>
</div>
<div id="create-{domainClass.propertyName}" class="content scaffold-create" role="main">
<h1><!--g:message code="default.create.label" args="[entityName]" /-->Create Time</h1>
<g:if test="${flash.message}">
<div class="message" role="status">${flash.message}</div>
</g:if>
<g:hasErrors bean="\${propertyName}">
<ul class="errors" role="alert">
<g:eachError bean="\${propertyName}" var="error">
<li <g:if test="\${error in org.springframework.validation.FieldError}">data-field-id="\${error.field}"</g:if>><g:message error="\${error}"/></li>
</g:eachError>
</ul>
</g:hasErrors>
<g:form action="save" method="post" enctype="multipart/form-data" >
<fieldset class="form">
<g:render template="form"/>
<g:select
optionKey="id" optionValue="Project" name="project.name" id="project.name" from="${Project.list()}"
onchange="${remoteFunction(
controller:'project',
action:'ajaxGetClassifications',
params:'\\'id='\\' + escape(this.value)',
onComplete:'updateClassification(e)')}"
></g:select>
</fieldset>
<fieldset class="buttons">
<g:submitButton name="create" class="save" value="Create" />
</fieldset>
</g:form>
</div>
</body>
把所有的選擇放在一行上 –
另外,如果你使用的是jQuery,它將是'updateClassification(data)' –