2012-01-11 57 views
0

一个奇怪的问题,在这个片段中存在的:Grails的控制器动作执行多次

class FooController { 

    def barService 

    def update = { 
    log.debug("I'm getting executed") 
    barService.doFoo() 
    render "Done" 
    } 
} 

当我现在在一个浏览器(Firefox在我的情况)进入http://my.domain.tld/fancyapp/foo/update,在update的代码被执行三次。


编辑1: barService.doFoo()包含大量计算,所以它需要相当长的时间完成。


编辑2: @hvgotcodes:没有,对不起,没有身份验证和我UrlMappings.groovy看起来是这样的:

class UrlMappings { 
    static mappings = { 
    "/$controller/$action?/$id?"{ 
     constraints { 
     // apply constraints here 
     } 
    } 
    "/"(view:"/index") 
    "500"(view:'/error') 
    } 
} 

@Jarred:没有,只有秋后算账Bootstrap.groovyBuildConfig.groovyConfig.groovyDataSource.groovyUrlMappings.groovy

提示任何人?

+1

其他事情正在发生 - 你有任何网址映射,身份验证,或任何其他? – hvgotcodes 2012-01-11 15:25:14

+1

你的conf /目录中是否有任何过滤器? – 2012-01-11 15:26:55

+0

快速反应 - 我用答案和代码更新了问题。 – codeporn 2012-01-11 15:35:41

回答

0

如果请求时间太长,浏览器可能会重试请求。如果你可以提高你的doFoo()方法的性能,它应该只执行一次。