网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 网络学院 >> 程序设计 >> Java编程 >> 文章正文
  jBPM websale代码学习: home.jsp(启动流程)            【字体:
jBPM websale代码学习: home.jsp(启动流程)
作者:佚名    文章来源:不详    点击数:    更新时间:2007-9-2    

1)用下面的方法,得到最新的流程定义

JbpmContext.getCurrentJbpmContext().getGraphSession().findLatestProcessDefinitions();

2)上面的方法,返回的是流程定义的列表,在页面上分别显示出来。
正在装载数据……

比如:显示启动节点的名称的方法是:

processDefinition.getTaskMgmtDefinition().getStartTask().getName();

3)JSP上传递的是流程定义ID,在servlet中,用下面方法得到ProcessDefinition:

ProcessDefinition processDefinition = graphSession.loadProcessDefinition(processDefinitionId);
4)完成开始节点:

ProcessInstance processInstance = new ProcessInstance(processDefinition);

    // create a new taskinstance for the start task
    TaskInstance taskInstance = processInstance.getTaskMgmtInstance().createStartTaskInstance();

    // Save the process instance along with the task instance
    jbpmContext.save(processInstance);
----------------------------------------------------------------------------------

//调用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的读取都用自己的方法封装起来,达到了简化和快速开发的目的。




本文来源:http://blog.csdn.net/princewong/archive/2007/07/17/1694704.aspx
站内文章搜索 高级搜索
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
     用java实现web服务器
     用java快速开发linux gu…
     正则表达式分解siemens交…
     [portal参考手册]目录
     jsp中调用oracle存储过程…
  • 从头开始认识jboss

  • EJB3.0入门

  • weblogic 9.1的domain配置my…

  • bpm产品

  • 保留weblogic 中jsp编译后生…

  • JavaWeb中的Session、Sessio…

  • MVP——Model-Viewer-Presen…

  • 《程序员》9期上市,Enterpr…

  • (转)使用面向对象的技术创…

  • Web Service 基础连接已经关…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    网络学院©2007 www.23book.net
    为您提供web编程,vb编程,vc编程,服务器架设管理,数据库设计等方面的知识 站长:David