grails
  • gsp
  • 2013-03-04 2 views -1 likes 
    -1

    я следующее имя UrlMappingг: ссылка игнорирования имени отображение

    name 'admin_user' :"/admin/user/$action?/$id?"(controller:'userAdmin') 
    

    На другой странице site/edit.gsp (/admin/site/edit) Я зову:

    <g:link mapping="admin_user" action='create' class="create" >New User</g:link> 
    

    Но его генерацию

    /admin/site/create 
    

    в основном игнорируя мой параметр отображения. Любая помощь в том, что я делаю неправильно?

    ответ

    0

    Итак, я, наконец, дошел до сути, это проблема с двумя сопоставлениями URL-адресов, которые противоречили друг другу.

    name 'admin_user' :"/admin/user/$action?/$id?"(controller:'userAdmin') 
    "/$controller/$action?/$id?"() 
    

    Он игнорировал первый и всегда использовал второй. В конце концов я просто отказаться от использования префикса администратора и на самом деле идти с /admin/userAdmin/ я определил

    "/admin/$controller/$action?/$id?"() 
    

    А затем используется createLink с контроллером = «UserAdmin».

    Всякий раз, когда мне нужна была ссылка на/user/xxx, я явно определил ее.

    Большая боль в полях ....

    -1

    Похоже, что вы неправильно создаете или используете свое названное сопоставление. Вы пытаетесь использовать именованное сопоставление и action, но форма действия имеет приоритет, поэтому вы получаете ссылку на /controller/action. На основе docs, вам нужно иметь определенное имя отображения ваших действий, который выглядит примерно так:

    name createAdminUser: "/admin/user/create" { 
        controller = 'userAdmin' 
    } 
    

    Вы можете по-прежнему проходите названные параметры, как $id? (который, кажется, не имеет смысл для создания) через params="[name: value]". Используйте его на ваш взгляд, как:

    <g:link mapping="createAdminUser" class="create">New User</g:link> 
    
    +0

    Какая часть исправит? Закрытие или имя? Или факт, что я использую параметры, такие как $ action? – Nix

    +0

    Закрытие в сочетании с тегом 'g: link' с использованием' action' – doelleri

    0

    Это отображение вроде нормально. Я понял это в своей среде Grails v2.0.4.

    <g:link mapping="admin_user" action='create' class="create" >New User</g:link> 
    

    производит ссылку:

    /admin/user/create 
    

    и

    <g:link mapping="admin_user" action='create' class="create" id="3">New User</g:link> 
    

    генерирует

    /admin/user/create/3 
    

    Вы можете проверить, если UrlMapping.groovy находится в правильном месте, или документы о версии Grails, которые вы принимаете.

    +0

    Где был .gsp, вы запустили это? – Nix

    +0

    Это не имеет значения, потому что вы можете использовать g: ссылку повсюду. Я пробовал в '/' или '/ path /'. Оба пути в порядке. – coderLMN

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

    • Нет связанных вопросов^_^