gpt4 book ai didi

grails - grails域对象null检查不起作用-grails 2.3.7

转载 作者:行者123 更新时间:2023-12-02 14:11:41 25 4
gpt4 key购买 nike

我在grails应用程序上工作,在这里我为每个用户都有一个Profile域。查看和编辑用户个人资料有两种方法-

  • 用户单击名为Profile的标题链接,因此他可以查看其个人资料并根据需要进行编辑。
  • 管理员可以通过单击所有用户列表中的用户链接来查看任何用户的个人资料。

  • 因此,在第一种情况下,如果用户本人正在检查其个人资料,则在 Controller 端,我正在使用Spring安全方法“springSecurityService.currentUser”检查该用户。
    在第二种情况下,如果管理员正在检查用户的个人资料,则将userInstance传递给 Controller ​​操作。

    当我在第一种情况下使用它时会出现问题,即用户自己正在检查其个人资料。在这里,当我使用if / else条件检查userInstance参数的null时,userInstance通过null检查,即使它为null。当我在控制台上打印它时,它给了我一个空指针异常。

    代码是-
    def show(User userInstance){
    println("Inside show action of profileController")

    println("userInstance: " + userInstance) //Output- userInstance: null

    if(userInstance != null){
    println("userInstance: " + userInstance) //Output- userInstance: null
    }else{
    println("userInstance is null") //It never prints even though userInstance is null

    userInstance = springSecurityService.currentUser
    }

    //More functionality to come
    }

    因此,基本上它是非常基本的东西,但是我无法弄清楚,为什么它不检查null而是将sill打印为null。

    最佳答案

    when I check for null of userInstance parameter using if/else condition, the userInstance passes null check even though it is null.



    这意味着Groovy编译器中存在一个非常基本的错误,对此我表示怀疑。尝试以下方法:
    def show(User userInstance){
    userInstance = userInstance ?: springSecurityService.currentUser
    }

    大概当管理员正在查看用户的个人资料时,该用户的ID是否作为请求参数传递?如果是这样,该如何阻止知道(或猜测)另一个用户ID的恶意用户访问其个人资料?

    关于grails - grails域对象null检查不起作用-grails 2.3.7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23776830/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com