如何通过从gsp文件到grails中的另一个gsp文件的链接获取传递的“id”参数

时间:2013-05-24 21:26:53

标签: grails hyperlink params

假设我有一个带链接的gsp文件正在使用标签“阅读更多。此链接打开另一个gsp文件名”blog“,如果你看一下url栏,你可以看到我当前的链接是”MyWebApp / post / blog /(当前i值)。那么如何从新的blog.gsp文件中得到(当前的i值)实际上是一个整数?

3 个答案:

答案 0 :(得分:1)

class PostController {

   def list() {
     // this action calls the page that has the "Read more" link
     def posts = Post.list()
     [posts: posts]
   }

   def blog() {
     // this action is triggered by the "Read more" link and
     // renders your blog post where you want the current ID
     def post = Post.get(params.id)
     [post: post]
   }
}

blog.gsp

<html>
....
${post.id}
....
</html>

答案 1 :(得分:0)

<强>更新

您可以执行以下操作

<g:link action="blog" controller="post" params="['id': '${i}']">
   Read more
</g:link>

这取决于 i 是通过url映射的,但我猜它会是 $ {params.i}

答案 2 :(得分:0)

创建链接或提交表单时,您的信息将存储在params地图中。您可以通过控制器访问此映射,您可以执行任何操作,例如将数据传递到视图,或执行查询,然后将结果传递给视图。

了解流量控制器的最简单方法&gt;视图&gt;控制器&gt;另一种观点是使用grails命令generate-all并检查域类的基本crud。了解showedit的工作原理。

Gregg的回答可能就是你要找的。如果它不起作用,也许你传递的是无效的id。您可以在使用<g:if>显示内容之前检查帖子是否存在,例如:

<g:if test="${post}">
  id: ${post.id}
</g:if>
<g:else>
<p>This blog post don't exists.</p>
</g:else>