0

「続きを読む」というタグで動作するリンクを含む gsp ファイルがあるとします。このリンクは別の gsp ファイル名「blog」を開きます。URL バーを見ると、現在のリンクが「MyWebApp/post/」であることがわかります。ブログ/(現在のi値). では、実際には整数である (現在の i 値) を新しい blog.gsp ファイルから取得するにはどうすればよいでしょうか?

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

リンクを作成したり、フォームを送信したりすると、情報がparamsマップに保存されます。このマップはコントローラーからアクセスでき、ビューにデータを渡したり、クエリを実行して結果をビューに渡したりするなど、必要なことは何でも行うことができます。

フロー コントローラー > ビュー > コントローラー > 別のビューを理解する最も簡単な方法は、grails コマンドの generate-allを使用して、ドメイン クラスの基本的な crud を確認することです。showとがどのように機能するかを確認しeditます。

グレッグの答えはおそらくあなたが探しているものです。うまくいかない場合は、無効な 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 に答える
0

アップデート

おそらく次のことができます

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

URLマッピングを介してが何であるかに依存しますが、それは${params.i}になると思います

于 2013-05-24T21:47:38.303 に答える