我对osworkflow比较熟悉,希望可以帮到你.1.要求你近个Login 类必须 implements FunctionProvider 接口.
<pre-functions>
<function type="class">
<arg name="class.name">com.yourcompany.struts.Login</arg>
</function>
</pre-functions>
2.配置文件中传值
如果是静态值,可以定义在arg中
<arg name="arg1">arg1 value</arg>如果是动态值,则必须利用 Map 参数. 请看下面代码, 你的类必须实现FunctionProvider 接口, execute就是这个接口的函数,你必须实现execute方法
execute方法有三个参数:
第一个是Map dataMap, 第二个是 argspublic void execute(Map dataMap, Map args, PropertySet ps){
//取静态参数方法:
args.get("arg1") //这句取得xml中定义的arg1这个参数的值.//取由外部传进来的值的方法:
dataMap.get("key1") }上例子中的key1来源于doaction
dataMap.put("key1","test"); //这里put 值, execute里可取值.
wf.doAction(wfid, actions[i], dataMap);
<pre-functions>
<function type="class">
<arg name="class.name">com.yourcompany.struts.Login</arg>
</function>
</pre-functions>
2.配置文件中传值
如果是静态值,可以定义在arg中
<arg name="arg1">arg1 value</arg>如果是动态值,则必须利用 Map 参数. 请看下面代码, 你的类必须实现FunctionProvider 接口, execute就是这个接口的函数,你必须实现execute方法
execute方法有三个参数:
第一个是Map dataMap, 第二个是 argspublic void execute(Map dataMap, Map args, PropertySet ps){
//取静态参数方法:
args.get("arg1") //这句取得xml中定义的arg1这个参数的值.//取由外部传进来的值的方法:
dataMap.get("key1") }上例子中的key1来源于doaction
dataMap.put("key1","test"); //这里put 值, execute里可取值.
wf.doAction(wfid, actions[i], dataMap);
<arg name="class.name">
com.yourcompany.struts.Login
</arg>
嗯 呵呵 解释的挺清楚的 还有问题就是
1.我用的是struts 类继承Action后 也有excute方法 那这个类如果也实现FunctionProvider接口,我想用承Action的excute方法 怎么办呢public ActionForward testObject(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
......
return mapping.findForward("leave");
}2.<pre-functions>
<function type="class">
<arg name="class.name">com.yourcompany.struts.Login </arg>
</function>
</pre-functions>在调用上面的配置时,我如何得到从页面传过来的值呢
比如我登录系统的用户名和密码,我如何在Login类中得到呢非常感谢你的解答 分不够我再加
分我是要的:) 我上面已经说过如何做的了,如果还不明白,可以把你的初始化workflow及doAction的代码贴出来,我看能不能帮你加进去.