我在.gsp页面中使用会话属性,如下所示:
<g:set var="maxValue" value="${session?.MY_VAR}"/>
我正在从Javascript到Groovy控制器(MyController.groovy)进行AJax调用,并设置如下:
session.setAttribute(“MY_VAR”,“abc”);
Ajax调用返回GSP后。会话变量的值不会更新。它仍然存储先前加载的旧值。
关于如何解决这个问题的任何想法?
答案 0 :(得分:0)
您的GSP在服务器上生成,生成的HTML将发送到浏览器。您的Ajax调用不会强制页面刷新,因此不会重新评估GSP以及下面的行,并且不会更改变量maxValue
。
<g:set var="maxValue" value="${session?.MY_VAR}"/>
您应该考虑控制器中的render as JSON
返回maxValue
并在收到Ajax响应后使用JavaScript更新DOM。有关详细信息,请参阅render。