0

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

4

3 回答 3

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]
   }
}

博客.gsp

<html>
....
${post.id}
....
</html>
于 2013-05-24T21:58:52.620 回答
0

更新

您可能可以执行以下操作

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

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

于 2013-05-24T21:47:38.303 回答
0

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

理解流控制器 > 视图 > 控制器 > 另一个视图的最简单方法是使用 grails 命令generate-all并检查域类的基本 crud。看看show和是如何edit工作的。

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>
于 2013-05-24T23:58:10.840 回答