person.properties = params是做什麼的?Grails Acegi Plugin - PersonController.groovy - 請解釋!
0
A
回答
2
嗯,簡短的回答是,它將PARAMS地圖中的任何鍵與person對象的屬性相匹配,並將PARAMS地圖中的值賦予匹配的屬性。
示例:假設params.id = 156,並且person有一個名爲id的成員屬性。這個電話後,person.id將等於156
一些注意事項:
- 如果有PARAMS關鍵在於 不匹配的人, 沒關係性質,它只是不會做什麼 與那些。
- 如果有屬性沒有在params中有鍵嗎?還有 好的,它也會跳過這些。
- 這也是非常相似,通過「新 人(PARAMS)」創建一個新的人物或致電 「bindData(人,則params)」。
0
它使用提供的請求參數更新person
對象上的屬性值。這稱爲數據綁定,並記錄在here。
1
在幕後全面的文檔,一個Groovy/Grails的對象的屬性是一個地圖域類屬性。 params對象也是請求參數的映射 - 基本上是HttpServletRequest對象的CGI參數。因此,分配將使用params地圖中的值更新屬性地圖,只在匹配的地方。
如果你是直servlet來做到這一點& 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-Plugin並需要附加檢查
- 3. Grails Acegi手動登錄
- 4. Grails Acegi:更新用戶名
- 5. 需要有關的Grails和Acegi的
- 6. Grails Acegi插件 - 如何更新緩存?
- 7. Grails Mail Plugin Office365
- 8. 請解釋並解釋
- 9. grails acegi安全約束繞過前進
- 10. Acegi,Grails,JBoss,SSL來回http <> https
- 11. 的Grails Acegi的插件用戶推薦
- 12. Grails/Acegi禁用用戶問題
- 13. grails acegi遷移到spring-security-core
- 14. Grails 3 Spring Security Plugin
- 15. 請解釋
- 16. __IPHONE_OS_VERSION_MIN_REQUIRED請解釋
- 17. 請解釋差
- 18. 請解釋WebAuthenticationBroker
- 19. 請解釋
- 20. 請求解釋
- 21. 請解釋AsParallel()
- 22. 使用的Acegi
- 23. Acegi升級 - BadCredentialsException
- 24. BuildConfig.groovy和grails-gradle-plugin
- 25. 在grails之外使用grails安全模型(acegi)
- 26. 請解釋PHP $ _GET請求
- 27. 請解釋區別?
- 28. 語法解釋請
- 29. 請解釋輸出
- 30. SELECT DISTINCT。請解釋?
這不應該是一個社區維基。 – 2009-05-26 21:07:16