2015-10-17 2 views
0

В следующем фрагменте, где находится awardTypes? Этот URL-адрес: http://localhost:8080/awardTypes/edit/1. Мне нужна помощь в понимании потока запросов.Попытка определить источник этого параметра метода

/mgs/grails-app/controllers/com/mgs/AwardTypesController.groovy

class AwardTypesController { 
    ... 
    def edit(AwardTypes awardTypes) { 
     respond awardTypes 
    } 
    ... 
} 

/mgs/grails-app/conf/hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC 
     "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory> 
     <mapping resource="AwardTypes.hbm.xml"/> 
    </session-factory> 
</hibernate-configuration> 

/mgs/grails-app/conf/AwardTypes.hbm.xml

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 
<!-- Generated 14-Oct-2015 10:13:15 PM by Hibernate Tools 4.3.1.Final --> 
<hibernate-mapping> 
    <class name="com.mgs.AwardTypes" table="award_types" catalog="mgs" optimistic-lock="version"> 
     <id name="id" type="java.lang.Byte"> 
      <column name="id" /> 
      <generator class="identity" /> 
     </id> 
     <property name="name" type="string"> 
      <column name="name" length="250" not-null="true" /> 
     </property> 
     <property name="image" type="string"> 
      <column name="image" length="500" /> 
     </property> 
     <property name="created" type="timestamp"> 
      <column name="created" length="19" /> 
     </property> 
     <property name="modified" type="timestamp"> 
      <column name="modified" length="19" /> 
     </property> 
     <set name="awardses" table="awards" inverse="true" lazy="true" fetch="select"> 
      <key> 
       <column name="award_type_id" not-null="true" /> 
      </key> 
      <one-to-many class="com.mgs.Awards" /> 
     </set> 
    </class> 
</hibernate-mapping> 

Конфигурация:

  • Grails 3.0.9
  • объекты домена обратного проектирования из инструментов JBoss' Hibernate помещаются в/SRC/главная/заводной/ком/MGS/*
  • код CRUD из grails generate-all com.mgs.AwardTypes
  • MySQL 5.6
  • Windows 7 Pro , Cygwin

я бы подумал, что это было бы что-то вроде этого:

class AwardTypesController { 
     ... 
     def edit(int id) { 
      respond AwardTypes.get(id) 
     } 
     ... 
    } 
+1

Я считаю, что [это] (http://stackoverflow.com/a/22099498/2051952) отвечает на ваш вопрос. – dmahapatro

ответ

0

Вы должны добавить этот код в UrlMappings .groovy:

class UrlMappings { 
    static mappings = { 
     ..... 
     "/awardTypes/edit/$id"(controller: "awardTypes", action: "edit") 
    } 
} 

В вашем контроллер 1.):

def edit() { 
    AwardTypes.get(params.id) 
} 

или

def edit(Long id) { 
    AwardTypes.get(id) 
} 

Лучше использования Длинный вместо int, потому что в grails по умолчанию используется тип id.

* Кроме того, я могу показать свою UrlMapping:

class UrlMappings { 

static mappings = { 
    ... 
    "/$controller/$action?/$id?(.$format)?" { 
     constraints { 
      // apply constraints here 
     } 
    } 
    .... 
    } 
} 

Кроме того, читать далее: https://grails.github.io/grails-doc/latest/ref/Plug-ins/URL%20mappings.html

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