【问题标题】:request variables in grailsgrails中的请求变量
【发布时间】:2009-06-12 09:32:58
【问题描述】:

编辑:根据反馈,完全删除原始问题并以更好的语言重新发布

我希望访问请求或参数变量并在控制器和 gsp 之间传递它。我知道 params 对象包含查询字符串所具有的所有内容。

我看到的所有例子都是模型驱动的。 我在网上查找了文档,并且有两本书——开始的 grails 和权威的 grails 指南,两本书都有关于 params 的数据库驱动示例。我想了解如何设置和访问参数。我到处读到的只是它是一个请求变量的映射。

我的场景如下: 我有一个控制器,它向 GSP 发送一个列表(不是来自数据库)。我想过在 GSP 和控制器之间传递一个“params”变量。

重申一下,我所拥有的场景不是模型驱动的场景。我正在寻找遍历项目列表(不知道数据库计数)并由用户点击驱动。我想实现类似 twitter 的“底部的更多按钮”之类的东西。在页面底部有一个简单的远程链接和一个新的页面计数器,我在控制器中访问它并传递给我的服务类以获得列表的新部分。

控制器代码:

//access params from request
int pageInt =params["pagecount"] // *i always get null here*

callMyList(pagecount) //calls my service method to get next set of list for next page

GSP(非实际)代码

 <%= params.get("pagecount") %>
 <%= nxtPage = pagecount++ %>
  ...
 <%params["myId"] = nxtPage%>


<g:remoteLink action="list" id="${nxtPage}">More</g:remoteLink>

【问题讨论】:

  • 你能贴一些代码sn-ps吗?文字在说明您的问题时不是很准确。
  • 完成-抱歉,您不得不忍受之前的帖子!

标签: grails request gsp params


【解决方案1】:

params 对象仅对从当前请求的查询字符串中获取 值有用。在 GSP 的参数中设置一个值不会做任何事情。 Params 是一个请求范围对象,每个新请求都是一个全新的对象。要将值从 GSP 传递到 List 控制器,该值必须位于对控制器的新请求的查询字符串中。就您而言,您似乎想将其放在“更多”链接中。您的 remoteLink 标记的编写方式,nxtPage 的值应该在您的 List 控制器的 params.id 中,因此您可以通过这种方式访问​​它。如果你想在 params.pagecount 中,你必须把它放在你 remoteLink 标签的 params 属性中。像这样的:

<g:remoteLink action="list" params="[pagecount: nxtPage]">More</g:remoteLink>

【讨论】:

  • 谢谢 Ben,试试这个,你能告诉我是否可以执行以下操作(我收到错误:Cannot cast object '2' with class 'java.lang.String' to class 'java .lang.Integer') 这就是我的 GSP int pageInt = params["pagecount"]
  • int pageInt = params["pagecount"]
  • 请求参数来自params对象作为String对象。如果你想要字符串的整数值,你必须像这样解析它: int pageInt = Integer.parseInt(params.pagecount)
  • 谢谢,Ben 设法解决了。你愿意让我知道这是否是我应该为非数据库列表做一些“分页”的方式吗?例如:一些来自网络或第三方应用程序(如 facebook/twitter 等)的列表? ........此外,您如何在这些逻辑上做得更好?请建议 - 开始时感到如此愚蠢是自然的吗?
【解决方案2】:
def urlString =  request.scheme + "://" + request.serverName + ":" 
+ request.serverPort + "/" + grailsApplication.metadata.'app.name' 
+ "/" + controllerName + "/" 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-12
    • 2020-07-07
    • 2012-05-03
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多