//调用homeBean的getTaskInstances方法,得到一个LIST。该LIST的每个元素的名称为 var="taskInstance"
//h:column表示一列,相当于JSP中的 TD
//f:facet 表示列表表头
//h:commandLink相当于我们平常的href,action表示点击后要执行的动作
//f:param是在jsf中传递变量的方法
//h:outputText 表示要显示的任务的名称
用上面的JSF代码就显示了当前进入系统的用户的任务列表,点其中的一个任务名称后,就执行下面的代码:
homeBean.java:
public String selectTaskInstance() { // Get the task instance id from request parameter long taskInstanceId = JsfHelper.getId("taskInstanceId"); TaskInstance taskInstance = taskMgmtSession.loadTaskInstance(taskInstanceId); taskBean.initialize(taskInstance); return "task"; }
其中,从request中取parameter的方法如下:
public static long getId(String parameterName) { long value = -1; String valueText = (String) FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(parameterName); try { Long id = new Long(valueText); value = id.longValue(); } catch (NumberFormatException e) { throw new RuntimeException("couldn't parse '"+parameterName+"'='"+valueText+"' as a long"); } return value; }
jBPM把parameter的读取都用自己的方法封装起来,达到了简化和快速开发的目的。