关联函数返回多个数据时两种方法实现随机选取

最近带工程师做项目时,发现当关联函数返回多个数据时,不能很好的实现随机选取服务器返回的数据

 

今天就总结一下 :

 

方法一:

优点:lr任何版本都能使用,

 

缺点:需要写的函数比较多

array_len=atoi(lr_eval_string("{css_files_count}"));



  srand(time(NULL));
  index=rand()%array_len+1;
  sprintf(tempStr,"{css_files_%d}",index);
  lr_save_string(lr_eval_string(tempStr),"tempStr_Rand");

 

举例:

 

web_reg_save_param("css_files",
  "LB/IC=link rel=\"stylesheet\"",
  "RB/IC=\" >",
  "Ord=ALL",
  LAST);

 web_url("ObjectInspectorServlet_3",
  "URL=http://{HostName}:{ServerPort}/opencrx-core-CRX/ObjectInspectorServlet?requestId={RequestId_Reg}&event=6&parameter=xri*%28xri%3A%40openmdx%3Aorg.opencrx.kernel.home1%2Fprovider%2FCRX%2Fsegment%2FStandard%2FuserHome%2Fguest%29",
  "TargetFrame=",
  "Resource=0",
  "RecContentType=text/html",
  "Referer=http://{HostName}:{ServerPort}/opencrx-core-CRX/ObjectInspectorServlet?locale=zh_CN?loginFailed=false",
  "Snapshot=t8.inf",
  "Mode=HTML",
  LAST);

 array_len=atoi(lr_eval_string("{css_files_count}"));

 if(array_len>0){
  
  srand(time(NULL));
  index=rand()%array_len+1;
  sprintf(tempStr,"{css_files_%d}",index);
  lr_save_string(lr_eval_string(tempStr),"tempStr_Rand");

  lr_error_message("value=%s",lr_eval_string("{tempStr_Rand}"));

 // lr_save_string(lr_eval_string(lr_paramarr_random("css_files")),"cccc");
 // lr_error_message(lr_eval_string("{cccc}"));

 }

 web_submit_data("WorkspacesDashlet.jsp",
  "Action=http://{HostName}:{ServerPort}/opencrx-core-CRX/wizards/Dashboard/WorkspacesDashlet.jsp?requestId={RequestId_Dashlet}&event=41&parameter=xri*(xri%3A%2F%2F%40openmdx*org.opencrx.kernel.home1%2Fprovider%2FCRX%2Fsegment%2FStandard%2FuserHome%2Fguest)*id*(WorkspaceDashboardControl.W0.WorkspacesDashlet)",
  "Method=POST",
  "TargetFrame=",
  "RecContentType=text/html",
  "Referer=http://{HostName}:{ServerPort}/opencrx-core-CRX/ObjectInspectorServlet?requestId={RequestId_Reg}&event=6&parameter=xri*%28xri%3A%40openmdx%3Aorg.opencrx.kernel.home1%2Fprovider%2FCRX%2Fsegment%2FStandard%2FuserHome%2Fguest%29",
  "Snapshot=t9.inf",
  "Mode=HTML",
  ITEMDATA,
  LAST);

 

方法二:

lr_save_string(lr_eval_string(lr_paramarr_random("css_files")),"cccc");

 

优点:两个重点函数 lr_paramarr_random 和lr_save_string  简单

 

缺点:适用于lr9版本以上

举例:

 

web_reg_save_param("css_files",
  "LB/IC=link rel=\"stylesheet\"",
  "RB/IC=\" >",
  "Ord=ALL",
  LAST);

 web_url("ObjectInspectorServlet_3",
  "URL=http://{HostName}:{ServerPort}/opencrx-core-CRX/ObjectInspectorServlet?requestId={RequestId_Reg}&event=6&parameter=xri*%28xri%3A%40openmdx%3Aorg.opencrx.kernel.home1%2Fprovider%2FCRX%2Fsegment%2FStandard%2FuserHome%2Fguest%29",
  "TargetFrame=",
  "Resource=0",
  "RecContentType=text/html",
  "Referer=http://{HostName}:{ServerPort}/opencrx-core-CRX/ObjectInspectorServlet?locale=zh_CN?loginFailed=false",
  "Snapshot=t8.inf",
  "Mode=HTML",
  LAST);

 array_len=atoi(lr_eval_string("{css_files_count}"));

 if(array_len>0){
  /*
  srand(time(NULL));
  index=rand()%array_len+1;
  sprintf(tempStr,"{css_files_%d}",index);
  lr_save_string(lr_eval_string(tempStr),"tempStr_Rand");

  lr_error_message("value=%s",lr_eval_string("{tempStr_Rand}"));
*/
  lr_save_string(lr_eval_string(lr_paramarr_random("css_files")),"cccc");
  lr_error_message(lr_eval_string("{cccc}"));

 }

 web_submit_data("WorkspacesDashlet.jsp",
  "Action=http://{HostName}:{ServerPort}/opencrx-core-CRX/wizards/Dashboard/WorkspacesDashlet.jsp?requestId={RequestId_Dashlet}&event=41&parameter=xri*(xri%3A%2F%2F%40openmdx*org.opencrx.kernel.home1%2Fprovider%2FCRX%2Fsegment%2FStandard%2FuserHome%2Fguest)*id*(WorkspaceDashboardControl.W0.WorkspacesDashlet)",
  "Method=POST",
  "TargetFrame=",
  "RecContentType=text/html",
  "Referer=http://{HostName}:{ServerPort}/opencrx-core-CRX/ObjectInspectorServlet?requestId={RequestId_Reg}&event=6&parameter=xri*%28xri%3A%40openmdx%3Aorg.opencrx.kernel.home1%2Fprovider%2FCRX%2Fsegment%2FStandard%2FuserHome%2Fguest%29",
  "Snapshot=t9.inf",
  "Mode=HTML",
  ITEMDATA,
  LAST);

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值