2013-10-27 2 views
0

Действие getStarted действие перенаправляет на companyInfo действие, которое отображает companyInfo.gsp и сразу после рендеринга страницы, companyInfo действие получило вызов еще раз. Я не понимаю, в чем проблема? Pls поможет мне понять это.Действия Grails, вызываемые дважды

class MyController { 
    @Secured('ROLE_USER') 
    def getStarted(){ 
     def renderParams = [view: 'getStarted', model: [:]] 
     if(request.method != 'POST') { 
      render(view: 'getStarted') 
     } else { 
      def company = new Company() 
      ....... 
      redirect(action: 'companyInfo', params: [id: company.id]) 
     } 
    } 

    @Secured('ROLE_USER') 
    def companyInfo() { 
     def renderParams = [view: 'companyInfo', model: [:]] 
     if (request.method != 'POST') { 
      renderParams.model.cmpId = params?.id 
      render(renderParams) 
     } 
    } 
} 
+0

Как вы называете действие? Какой метод HTTP? Используйте имя действия как 'start' или что-то еще, кроме' getStarted'. Я бы отговаривал использовать 'get ***' как имя действия. – dmahapatro

+0

Я изменил его, но не помогает. – emilan

+0

'companyInfo' вызывается один раз, когда POST вызывается при запуске. Я не вижу, чтобы это срабатывало дважды. Протестировано в Dev Tool и Grails 2.2.4. Как вы подтверждаете, что действие запускается дважды? – dmahapatro

ответ

0

See this answer. Grails пытается отобразить get*. И когда контроллер называется grails пытается сопоставить getStarted с названием started, вызывая метод. Итак, Никогда не используйте get**** как ваше имя действия

Смежные вопросы