еще один вопрос urlmapping в Grails

Хорошо, поэтому я спросил и получил ответ о том, как сделать один экземпляр контроллера нечувствительным к регистру по отношению к URL-адресам. я могу сделать

"/mycontroller/$action?/$id?"(controller: "myController")

поэтому, когда внешнее приложение пытается ссылаться на ссылку в нашем приложении, их URL-адреса в нижнем регистре (:( вздох) будут работать.

Мне нужно расширить это, чтобы включить также действия. Итак, вопрос в том, нужно ли, следуя описанному выше подходу, отображать URL-адреса для каждого действия?

/mycontroller/methodone/(controller: "myController", action: methodOne)
/mycontroller/methodtwo/(controller: "myController", action: methodTwo)

Что-то вроде вышеперечисленного?


person hvgotcodes    schedule 13.07.2010    source источник


Ответы (2)


Это похоже на вопрос ниже, на который я ответил и включил исходный код.

Как сделать мое сопоставление URL-адресов нечувствительным к регистру?

person Aaron Saunders    schedule 21.07.2010

Вы можете использовать замыкание для программного вычисления действия (или других параметров):

"/mycontroller/$a?/$id?" {
    controller = 'myController'
    action = { params.a?.toLowerCase() }
}
person Justin Ludwig    schedule 14.07.2010
comment
Разве это не преобразовало бы вызываемое действие в нижний регистр? На контроллере действие выполнено в верблюжьем корпусе. Итак, для работы / mycontroller / myaction необходимо преобразовать в / myController / myAction. - person hvgotcodes; 14.07.2010
comment
Вы правы, я неправильно прочитал ваш вопрос - я думал, вы хотите перейти от верблюжьей к строчной букве. Чтобы пойти другим путем, вам нужно получить список действий для контроллера (см. stackoverflow.com/questions/2956294/), а затем построить карту имен нижнего регистра и верблюжьего регистра. Однако вместо того, чтобы помещать весь этот код в конфигурацию сопоставления URL-адресов, вы, вероятно, захотите сопоставить / mycontroller / $ a? / $ Id? к новому действию в MyController, и пусть это действие запустит код более низкого уровня, чем верблюжий, и перенаправит запрос на действие, основанное на верблюжьем корпусе. - person Justin Ludwig; 19.07.2010