Свойство Grails noSelection в теге select переопределяет значение

У меня есть тег select ниже:

            <g:select name="recommendation" from="${recommendation.list()}"
                      optionKey="id" optionValue="recommendation"
                      value="${theAssessment.recommendation}"
                      noSelection="['':'-- Select Assessor Recommendation --']"
                      />

Форма работает так, как ожидалось, когда значение равно null, отображается noSelection. Когда я использую тег select для выбора данных, которые я хочу отправить, это также работает нормально, поскольку оно сохраняется в базе данных. Когда я затем возвращаюсь к форме, noSelection переопределяет значение, даже если значение не равно нулю. Я просмотрел документы и использую именно этот тег как указано.


person kulsoompatel    schedule 26.07.2016    source источник


Ответы (1)


Вы используете optionKey="id", так что значение Select должно быть назначено как идентификатор.

   // I guess your Value should be id here     
       <g:select name="recommendation" from="${recommendation.list()}" optionKey="id" optionValue="recommendation"
                  value="${theAssessment?.recommendation?.id}"
                  noSelection="['':'-- Select Assessor Recommendation --']" />

Если приведенный выше код не работает, попробуйте это.

       <g:select name="recommendation" from="${recommendation.list()}" 
              value="${theAssessment?.recommendation}"
              noSelection="['':'-- Select Assessor Recommendation --']" />
person Kamal kannan    schedule 26.07.2016
comment
Что это '?' иметь в виду? - person kulsoompatel; 26.07.2016
comment
theAssessment?.recommendation?.id делает его нулевым безопасным, если (theAssessment) && if (theAssessment.recommendation), затем покажите идентификатор, иначе ничего и не делайте его нулевым - person V H; 26.07.2016
comment
@CatChasedTheMouse docs.groovy-lang.org/latest/html/ документация/ - person 16dots; 27.07.2016