2012-07-03 3 views
0

Проблема: Я могу выполнить действие по умолчанию (listLatest) моего контроллера (ReviewMetricsController). Но я не могу явно ссылаться на другие действия (индекс) с отправкой формы . Я использую Grails 2.0.4 и запускаю свое приложение в режиме разработки из Eclipse IDE с установленным плагином Grails.Невозможно расшифровать urlMapping в приложении Grails

деталь: У меня есть форма в моем GSP, как показано ниже

<g:form name="queryForm" 
     url="[controller:'reviewMetrics', action:'index']"> 
     <g:actionSubmit value="submit" /> 
    </g:form> 

Когда я отправить форму выше, я получаю 404 ошибку

The requested resource (/reviewmetricsapp/reviewMetrics/index) is not available 

My Controller (reviewMetricsController.groovy) выглядит, как показано ниже

package reviewmetricsapp 

class ReviewMetricsController { 

    static scope = "session" 
    static defaultAction = "listLatest" 
    def gatherMetricsService 
    def grailsApplication 
    def latestMetrics 

    def index() { 
     render(view:"dashboard", model: [model: latestMetrics]) 
    } 

    def listLatest(){ 
     println grailsApplication.config.metricsapp.perlScript.loc 
     latestMetrics = gatherMetricsService.getLastWeekMetrics() 
     println "printing ${latestMetrics}" 
     render(view:"showMetrics", model: [metrics: latestMetrics]) 
    } 

} 

И мой urlMappings.groovy выглядит как sh собственный ниже

class UrlMappings { 

    static mappings = { 
     "/$controller/$action?/$id?"{ constraints { 
       // apply constraints here 
      } } 

     "/reviewMetrics/index"{ 
      controller="reviewMetrics" 
      action="index" 
     } 

     "/"(view:"/index") 
     "500"(view:'/error') 
    } 
} 

Любая помощь приветствуется

ответ

1
  1. Вам не нужно менять URLMappings -файл для вашего сценария использования. (Снять специальную обработку для reviewMetrics/индекс дела - его обрабатываются из первого правила)

  2. Пожалуйста, используйте следующее определение формы:

    <g:form name="queryForm" 
        controller="reviewMetrics" 
        action="index"> 
        [..] 
    </g:form> 
    
  3. Пожалуйста, проверьте, что ваши действия не доступны - просто положить простой index.gsp и не заботятся внутри контроллера. Я предполагаю, что ошибка находится где-то в другом месте.

+0

Не повезло, попробовав вышеуказанное! Использование g: link работает. Я сделал одно замечание. Когда я нажимаю кнопку отправки, она показывает/reviewmetricsapp/reviewMetrics/index, но когда я наводил ссылку на ссылку, она показывает http: // localhost: 8080/reviewmetricsapp/reviewMetrics/index. Ссылка работает, но форма submit не – thk

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