【问题标题】:PrettyFaces: @URLQueryParameter is not passed to @URLAction methodPrettyFaces:@URLQueryParameter 未传递给 @URLAction 方法
【发布时间】: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


    【解决方案1】:

    您可以在getPost() 方法中获取id 参数: FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id")

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-01
      • 2014-12-21
      • 2016-06-23
      • 1970-01-01
      • 1970-01-01
      • 2018-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多