Я создал (1.2.1) приложения Grails в SpringSource Tools Suite, 2.3.2 и вот мой UrlMappings.groovy:Weird UrlMappings для Grails 1.2.1
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
"/broadcasters/setInterval" { //cause a 404
controller = "broadcaster"
action = "setRefreshInterval"
}
"/broadcasters/online/$id?" { //this one is OK
controller = "broadcaster"
action = "listOnlineBroadcasters"
}
"/broadcasters/$id?" { //this one is OK
controller = "broadcaster"
action = "listAllBroadcasters"
}
"/" (controller: "login", action:"auth")
"/logout" (controller: "logout")
"500"(view:'/error')
"404"(view:'/404')
}
}
Вот мой контроллер
package xxx.yyy.controllers
import org.codehaus.groovy.grails.plugins.springsecurity.Secured
@Secured(['ROLE_ADMIN'])
class BroadcasterController {
def broadcasterService
static defaultAction = "listAllBroadcasters"
def listOnlineBroadcasters = {
...
}
def listAllBroadcasters = {
...
}
def setRefreshInterval = {
...
}
}
Когда я получить доступ к URL-адресу /вещательные/setInterval, у меня 404 как в качестве нормального или АЯКС запроса. Я также пишу простой модульный тест, чтобы проверить его для моих UrlMappings:
class GSMUrlMappingTests extends GrailsUrlMappingsTestCase {
void testUrlMapping() {
assertUrlMapping ("/broadcasters/setInterval", controller: "broadcaster", action: "setRefreshInterval")
}
}
И тест не прошел! Это ошибка Grails 1.2.1, или я что-то упускаю? Вот плагины я использовал
plugins.acegi=0.5.2
plugins.debug=1.0.2
plugins.hibernate=1.2.1
plugins.jdbc-pool=0.1
plugins.tomcat=1.2.1
Обычно в конце действия контроллера вы либо перенаправляете, либо визуализируете что-то. Если вы не определили что-то явное для рендеринга, оно может попытаться отобразить представление по умолчанию (/broadcasters/setInterval.gsp). Поскольку вы отключили действие контроллера setRefreshInterval, трудно понять, в чем проблема. См. Справочный документ по адресу http://www.grails.org/doc/latest/guide/single.html#6.1.3%20Models%20and%20Views –