【问题标题】:Setting session variable in Grails controllers在 Grails 控制器中设置会话变量
【发布时间】:2017-06-22 16:59:35
【问题描述】:

我正在使用 Grails 2.5.1 我正在尝试在控制器中设置会话变量并在另一个控制器中检查它,但该变量带有 null 值

这是我在其中设置会话变量的控制器:

def setSessionForHR() {

        session.isCallingHR='true'

    }

在下面的控制器中,我检查了值,但值为null:

println( "check : $session.isCallingHR  ") // here i get null   
 if (session.isCallingHR=='true')
    {
       //do something
     }

我错过了什么吗?

谢谢

【问题讨论】:

  • println( "check : ${session.isCallingHR} ") 在这里你应该放括号真的为什么你使用字符串 true 而不是将其设置为正确的真实值 session.isCallingHR=true 并由 if (session.isCallingHR) { do something 测试
  • @vahid 照你说的做了,仍然得到null
  • 不知道该告诉你会话是否有效,也许是因为 is 和 has 是特殊词。尝试替代 session.test='something' 然后在另一个控制器中查找它。尝试其他版本的 grails 以查看问题是否消失。高一低,即 2.4.5

标签: grails session-variables


【解决方案1】:
def setSessionForHR() 
{

//session.isCallingHR='true'
session["isCallingHR"]='true'

}

------------------------------------------

println(session["isCallingHR"])    
def isCallingHR=session["isCallingHR"]
if (isCallingHR)
{
   //do something
}

-----------------------------------------

请参考以下链接了解更多信息 http://docs.grails.org/3.1.1/ref/Servlet%20API/session.html

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
  • 我已经纠正了他的代码错误。我只是提供了更多信息的链接,以了解 grails 中的会话。我还提供了 grails 官方页面的链接。这不仅仅是其他一些第三方博客..
猜你喜欢
  • 1970-01-01
  • 2014-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-24
相关资源
最近更新 更多