Grails でグルーヴィーを始めたばかりで、常に解決策を求められている場合は、ちょっとしたオーダーメイドに苦労しています。
ajax を使用して 2 つの選択を作成しようとしています。一方には他方に基づいた情報が入力されています。私がフォローしている例は、ここhttp://www.grails.org/AJAX-Driven+SELECTs+in+GSPです。私も scaffold を使用しているため、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>