About jishuang

该作者尚未填入任何详情
So far jishuang has created 559 blog entries.

第三方集成时通过.j登录后直接调整到x5首页,在登录前先判断用户是否已登录,如果登录过强制注销

平台默认提供的有在线用户的功能,要判断用户是否已登录,可以通过在线用户的数据判断 如果登录过获取到对用的bsessionid,调用注销的API强制注销 .j的具体代码如下: import java.io.IOException; import java.sql.Date; import java.util.ArrayList; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.dom4j.Document; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.justep.biz.client.ActionEngine; import com.justep.biz.client.ActionResult; import com.justep.biz.client.ActionUtils; import com.justep.ui.JustepConfig; import com.justep.ui.util.NetUtils; public [...]

5.3.4及其之后的版本app如何获取打包时输入的版本号

app打包时需要输入版本号,并且是三段式的 5.3.4及其之后的版本如果要在app运行时的页面中获取平台提供的有cordova插件的接口可以获取 如下: 1.引用cordova插件 require("cordova!cordova-plugin-app-version"); 2.调用插件的API Model.prototype.button3Click = function(event) { if (window.cordova && cordova.getAppVersion) { cordova.getAppVersion.getVersionNumber(function(currentVersion) { alert("当前的app版本号:" + currentVersion); }); } };

上传并播放音视频文件

上传文件可以用attachment或者attachmentPC组件 上传后如果要点击图标或文件名播放视频需要自己重写点击图标或文件名的方法,可以参考 http://docs.wex5.com/bex5-ui-question-list-10109/ http://docs.wex5.com/bex5-ui-question-list-10191/ 播放音视频可以用html5的video标签,在需要播放视频的位置放置就可以,默认可以设置标签不显示,再重写的方法中控制标签显示 如下: 1.放video标签 <div xid="div27" align="center"> <video xid="video" src="" controls="controls" style="display:none"/> </div> 2.在重写的点击图标或文件名的方法中获取url给video的src赋值 Model.prototype.attachmentClick = function(event) { var docPath = event.docPath.get(); var fileID = event.fileID.get(); var docName = [...]

同一用户PC和mobile中允许同时登录,但PC和mobile分别只能登录一次,第二次登录时提供是否强制注销的选择

同一用户PC和mobile中允许同时登录,但PC和mobile分别只能登录一次可以参考http://docs.wex5.com/bex5-server-question-list-10045/ 如果要第二次登录时提供是否强制注销的选择,可以在前端js文件中调用登录的时候用confirm调试选择,具体实现如下: 修改上面链接中的loginAction的执行前事件如下: public static void systemProcessBeforeLoginAction() throws Exception { String user = ((String) ContextHelper.getActionContext().getParameter("name")); Map<Object, Object> options = (Map<Object, Object>) ContextHelper.getActionContext().getParameter("options"); String deviceType = (String) options.get("DeviceType"); String userDeviceType = user + ":" + [...]

分页显示数据时如何自定义页数跳转

平台默认提供了分页组件pageBar,但是没有提供可以自己输入页码跳转的,可以自己添加输入跳转 如下:在pageBar的div下放一个div,放input做跳转 <div xid="div8" class="col-sm-1"> <div xid="div9" style="text-align:right;white-space:nowrap;"> <ul xid="ul1" style="margin:0px;padding-left:0px;"> <li xid="li3"> <span xid="span18"><![CDATA[跳转至]]></span> <input component="$UI/system/components/justep/input/input" xid="input9" style="text-align:center;width:35px;" bind-keypress="input9Keypress"/> <span xid="span19"><![CDATA[页]]></span> </li> </ul> </div> </div> 在input的bind-keypress事件中判断是敲回车是调用获取输入的页码调用data的loadPageData做跳转 Model.prototype.input9Keypress = function(event) { var [...]

如何控制同一用户PC和mobile中允许同时登录,但PC和mobile分别只能登录一次

平台默认提供的在线用户列表中没有记录用户登录的终端,因此要分别控制pc和mobile一个用户只能登录一次,需要自己记录用户登录的终端等信息 第一步:可以定义一个全局的map,在登录后把登录的用户名和终端作为key,登录产生的session做为value存储到map中 第二步:在登录前获取到当前登录的用户名和终端,判断map中是否有,如果有说明已经登录过了,可以抛出异常不让登录 第三步:当注销和session超时应该删除map中的信息,可以监听session失效实现 定义全局的map和监听session失效,可以在BusinessServer下创建servlet和listener实现,具体实现如下: 在\runtime\BusinessServer\WEB-INF下创建src 在src下创建servlet:/com/justep/user/OnLineMap.java,注意有包名目录/com/justep/user package com.justep.user; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServlet; public class OnLineMap extends HttpServlet { //定义一个mapping存在登录者的相关信息 public static Map<String, Object> OnLineMaps = new HashMap<String, Object>(); } 创建listener:/com/justep/user/SessionListener.java,注意有包名目录/com/justep/user [...]

printHtml打印默认显示当前日期和url怎么去掉

普通表单的打印平台提供的printHtml,用的是浏览器的打印 在打印的时候页面上可能会在头部显示当前日期,在底部显示url,这个浏览器打印的页眉页脚控制的 可以设置不要页眉页脚或者设置页眉页脚为空 IE的页眉页脚设置在菜单栏——文件——页面设置中 chrome的在打印的时候提供的有打印设置

流程回退时如何修改任务标题

流程的回退规则中没有设置任务标题的,因此回退时要修改任务标题需要通过代码控制 可以在onAfterBackQuery事件中修改ProcessControl的信息,如下: public static void businessActivity3AfterBackQuery() { ProcessControl control = (ProcessControl) ContextHelper.getActionContext().getActionResult(); for (ProcessControlItem to : control.getFlowTos()) { to.getTask().setName("test修改任务名称"+to.getTask().getName()); } }