我在jsf中比较新。
我有一个jsf页面someDetails.xhtml,其中我有一个输出链接
<h:outputLink value="#{someTaskController.completeTask(taskId)}?taskId=#{taskId}">Assign Ticket</h:outputLink>
单击此链接时,应调用方法completeTask并执行某些操作。
问题是,当jsf页面someDetails.xhtml被打开时(在浏览器中),方法completeTask被调用并完成所有任务,这应该只在点击链接时发生。
我该怎么办?请帮忙
答案 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...
}