jsf 2输出链接渲染方法调用,无需单击

时间:2014-12-09 14:04:06

标签: jsf

我在jsf中比较新。

我有一个jsf页面someDetails.xhtml,其中我有一个输出链接

<h:outputLink value="#{someTaskController.completeTask(taskId)}?taskId=#{taskId}">Assign Ticket</h:outputLink>  

单击此链接时,应调用方法completeTask并执行某些操作。

问题是,当jsf页面someDetails.xhtml被打开时(在浏览器中),方法completeTask被调用并完成所有任务,这应该只在点击链接时发生。

我该怎么办?请帮忙

1 个答案:

答案 0 :(得分:1)

您正在使用错误的标记,而是使用命令链接:

<h:commandLink value="Assign Ticket" action="#{someTaskController.completeTask()}">
  <f:param name="taskId" value="#{taskId}" />
</h:commandLink>

您可以在方法completeTask()中访问taskId,如下所示:

public void completeTask() {
  Map<String,String> params = 
            FacesContext.getExternalContext().getRequestParameterMap();
  String taskId= params.get("taskId");
  // do your business action...
}