2011-02-09 2 views
1

У меня есть отображения:как дифференцируют Grails URL отображения

"/$controller/$action?/$id?"{ 
      constraints { 
       // apply constraints here 
      } 
     } // i used scaffolding and i think this is required by the generated stuff 
'/'(controller:'home') //for the home page 
'/$param1?/$param2?'(controller:'search') //for a search page 

Требуемый URL, которые будут отображаться в браузере:
www.site.com/ - для дома

www.site .com/keyword1/keyword2 - для поиска по этим необязательным ключевым словам

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

ответ

1

Это не будет. Grails сортирует ваши сопоставления url на основе заданного набора правил приоритета (от конкретного к общему).

Ваши URL-адреса всегда будут одинаковыми и возвратят ту же страницу.

Однако, поскольку ваши сопоставления неоднозначны, иногда он может вернуть страницу, которую вы не ожидаете. Лучшим вариантом будет поиск:

/search/params1?/Params2?

таким образом это однозначно.

+0

Что делать, если я использую вместо этого что-то вроде: '/ $ param1/$ param2' (controller: 'search') и '/ $ param1' (controller: 'search') – calin

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