(2)jBPM websale代碼學習: home.jsp(顯示工作清單)

來源:互聯網
上載者:User

//調用homeBean的getTaskInstances方法,得到一個LIST。該LIST的每個元素的名稱為 var="taskInstance"

<h:dataTable value="#{homeBean.taskInstances}" var="taskInstance" headerClass="tableheader" columnClasses="tablecell">

//h:column表示一列,相當於JSP中的 TD
  <h:column >

 //f:facet 表示列表表頭
    <f:facet name="header">
      <h:outputText value="Task Form Link" />
    </f:facet>

 //h:commandLink相當於我們平常的href,action表示點擊後要執行的動作
    <h:commandLink action="#{homeBean.selectTaskInstance}">

    //f:param是在jsf中傳遞變數的方法
      <f:param name="taskInstanceId" value="#{taskInstance.id}"/>

 //h:outputText 表示要顯示的任務的名稱
      <h:outputText value="#{taskInstance.name}" />
    </h:commandLink>
  </h:column>
  <h:column>
    <f:facet name="header">
      <h:outputText value="Process" />
    </f:facet>
    <h:outputText value="#{taskInstance.taskMgmtInstance.taskMgmtDefinition.processDefinition.name}" />
  </h:column>
  <h:column>
    <f:facet name="header">
      <h:outputText value="Version" />
    </f:facet>
    <h:outputText value="#{taskInstance.taskMgmtInstance.taskMgmtDefinition.processDefinition.version}" />
  </h:column>
</h:dataTable>

用上面的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的讀取都用自己的方法封裝起來,達到了簡化和快速開發的目的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.