Что делает person.properties = params?Плагин Grails Acegi - PersonController.groovy - Пожалуйста, объясните!
ответ
Ну, короткий ответ заключается в том, что он соответствует любому ключу в карте params со свойствами объекта person, присваивая значение в карте params соответствующему свойству.
пример: предположим, что params.id = 156, а человек имеет свойство члена с именем id. После этого вызова person.id будет равен 156.
Некоторых примечаний:
- Если есть ключи в Params, что не соответствуют свойствам лично, это нормально, это просто не будет делать все с этими.
- Если есть объекты недвижимости, у которых нет ключей в параметрах? Также ок, он тоже пропустит их.
- Это также очень похоже на создание нового человека через «новое Person (params)» или вызов «bindData (человек, параметры)».
Он обновляет значения свойств на объекте person
, используя предоставленные параметры запроса. Это называется привязкой данных и документировано here.
Существует исчерпывающая документация на Grails web site
За кулисами, свойства на объекте Groovy/Grails является отображением свойств класса домена. Объект params также представляет собой карту параметров запроса - в основном параметры CGI объекта HttpServletRequest. Таким образом, назначение будет обновлять карту свойств со значениями из карты params, только там, где они совпадают.
Если вы должны были сделать это с прямыми сервлет & JSP ты бы по существу писать:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Person person = new Person();
person.firstName = request.getParameter('firstname');
person.lastName = request.getParameter('lastname');
person.password = request.getParameter('password');
...
}
С Grails, вы по сути просто написать в PersonController.groovy:
def save = {
def person = new Person()
person.properties = params
...
}
Так с Grails вам не нужно слишком беспокоиться о том, что такое имена параметров, так как вы должны использовать теги Grails для их вывода, а затем отображение params, чтобы вернуть их обратно в объект. Это уменьшает глупые ошибки, возникающие при неправильном использовании имени параметра.
Вы также можете добавить дополнительные объекты к объекту домена Person и не писать больше операторов типа getter/setter.
- 1. Grails рекомендаций пользователя Acegi плагин
- 2. Grails Acegi плагин потерял пароль
- 3. Grails Acegi: обновить имя пользователя
- 4. Grails Acegi руководство пользователя
- 5. Аннотации плагинов Grails Acegi
- 6. Grails: Плагин не найдено имя [Acegi] и версии [0.5.2]
- 7. Почему плагин acegi grails не работает в weblogic?
- 8. Grails - Acegi: Настроить метод аутентификации
- 9. тестирование securityConfig mapping in grails + acegi
- 10. Пожалуйста, объясните этот метод
- 11. Неожиданный выход. Пожалуйста, объясните
- 12. Пожалуйста, объясните этот синтаксис
- 13. Пожалуйста, объясните constexpr
- 14. Пожалуйста, объясните инструкцию perl
- 15. Пожалуйста, объясните эту программу?
- 16. Пожалуйста Объясните Deadlock Концепция
- 17. Пожалуйста, объясните мне «это»
- 18. Объясните команду партии, пожалуйста?
- 19. Пожалуйста, объясните использование Ember. $?
- 20. Пожалуйста, объясните WebAuthenticationBroker
- 21. Пожалуйста, объясните SQL присоединиться
- 22. Пожалуйста, объясните вывод sizeof()
- 23. Java Наследование - пожалуйста, объясните
- 24. Пожалуйста, объясните порядок наборов
- 25. __IPHONE_OS_VERSION_MIN_REQUIRED, пожалуйста, объясните
- 26. Пожалуйста, объясните вывод. Long.toHexString()
- 27. Язык ассемблера, пожалуйста, объясните
- 28. Пожалуйста, объясните окончательный AtomicReference
- 29. Пожалуйста, объясните: content: '';
- 30. Пожалуйста, объясните этот JQuery
Это не должно быть wiki сообщества. –
не могли бы вы объяснить, почему? – zotherstupidguy
, потому что это простой вопрос с простым ответом, который со временем не потребует значительных изменений. – billjamesdev