【发布时间】:2014-10-17 22:15:50
【问题描述】:
我不知道如何将参数从 URL 传递到指定的控制器方法。 所以这是我注释控制器的方式:
@Component
@ManagedBean
@RequestScoped
@URLMappings(mappings={
@URLMapping(id = "posts", pattern = "/posts/", viewId = "/faces/posts/list.xhtml"),
@URLMapping(id = "postComments", pattern = "/posts/#{id}/comments", viewId = "/faces/posts/post_comments.xhtml")
})
public class PostsController {
@Autowired
private PostService postService;
private Post post;
@URLQueryParameter("id")
private String id;
public Post getPost() {
return postService.findById(Long.valueOf(getId()));
}
@URLAction(mappingId = "postsComments")
public void loadPost() {
System.out.println("in loadPost, ID: " + getId());
}
}
这是视图:
<ui:repeat value="#{postsController.posts}" var="post">
<tr>
<td>#{post.title}</td>
<td>
<pretty:link mappingId="postComments">
<f:param value="#{post.id}" />
Comments
</pretty:link>
</td>
<td><a href="#">Edit</a></td>
<td><a href="#">Delete</a></td>
</tr>
</ui:repeat>
而且我的 id 始终为空。然而,在生成的 HTML 代码中,id 始终是正确的:
posts/1/comments
posts/2/comments
posts/3/comments
等等
有什么想法吗?我正在使用 PrettuFaces 3.3.3。 谢谢。
【问题讨论】:
标签: prettyfaces