2020-10-10 08:11

@JFinal 购买了。看了下源码,跟我想像的不一样,跟你说的也不一样。
$.ajax({
url: url, data: data,
type: (data ? 'POST' : 'GET'),
cache: false, dataType: 'html',
error: function(ret) {alert(ret.statusText);},
complete: function() {if (loadingOptions) {ref.close();}},
// document.getElementById(...).innerHTML = ret; 不会执行返回值中的 js
success: function(ret) {$(container).html(ret);}
});

这个其实相当于$().load(url)方法,加载进来的html不能含有head,也只是一个html片段。

2020-10-04 18:22

这个简单。我现在的系统都是这样做的了,特别是在医疗系统,因为要用到医保,而医保相关功能都是要调用DLL的,使用c#调用DLL比较方便,所以我就使用了c# winform+jfinal+web模式,CS与BS结合,CS中调用java的方法,html中调用c#中的方法,互相调用。@JFinal

2020-09-06 09:44

@jiren 不是,现在不搞网站了。对此问题,你有何处理方法?

2020-09-05 21:50

@JFinal 序列是有的,异常信息就是提示无效数字。如果改为主键,就能顺利保存。

2020-09-05 17:39

@JFinal 4.9.01。我现在的处理方法是在页面上格式化日期,虽然不是很方便,但也是解决方法之一。

2020-09-01 08:50

@lxhxka 试过用FastJson,对其他模块有影响,比较树形结构的菜单无法显示,不敢用了。

2020-07-29 10:17

能动态切换吗?比如增加了横向菜单,点横向菜单,左边树的功能菜单跟着变

2020-07-15 11:05

我挺喜欢VUE的,不错,继续关注

2020-07-12 16:47

newJob,newTrigger是什么方法?

2020-07-04 23:03

@JFinal 我是看了文档不明白才来问的。配置为me.setJsonFactory(new FastJsonFactory());我试过了,也要在attrs中put自定义属性才可以,跟JFinalJson默认的没有什么区别了。我还发现个问题,配置me.setJsonFactory(new FastJsonFactory())后,我有些树形结构的数据出不来了,我树形结构数据是封装有一个方法自动转换List数据的。代码如下

/**
* 取得EasyUi中Tree控件的子树节点
*
* @param modelList
* 包含所有数据的Model列表
* @param idFieldName
* Model中ID字段名称
* @param parentIdFieldName
* Model中父ID字段名称
* @param textFieldName
* Model中名称字段名称,对应EasyUi的Tree控件中的text字段
* @param parentIdValue
* 父ID字段值
* @param level
* 树层级
* @return EasyUi中Tree控件的子树节点
*/
private static > List toTree(List modelList,
String idFieldName, String parentIdFieldName, String textFieldName,
Object parentIdValue, String iconCls, String cntName, int level) {
List retList = new ArrayList();

// 循环处理所有model
int n = 0;
for (M m : modelList) {
// 取得父ID字段值
Object id = m.get(parentIdFieldName);

// ID和传入的parentIdValue值是否相等
if ((parentIdValue == null && id == null)
|| (parentIdValue != null && parentIdValue.toString()
.equals(id.toString()))) {
// 如果相等,说明当前Model是子项,直接加入列表
retList.add(m);

// 递归地将当前Model的子树求出
List childrenList = toTree(modelList, idFieldName,
parentIdFieldName, textFieldName, m.get(idFieldName),
iconCls, cntName, level + 1);

// 子项列表,存放在children字段,此字段为指定字段
m.put(EASYUI_TREE_CHILDREN_NAME, childrenList);

if (StrKit.notBlank(cntName)) {
int cnt = m.getLong(cntName).intValue();
m.put(EASYUI_TREE_STATE_NAME, cnt > 0 ? "closed" : "open");
} else {
if (childrenList.size() > 0) {
//默认展开第一个节点
m.put(EASYUI_TREE_STATE_NAME, n++ == 0 ? "open"
: "closed");
} else {
m.put(EASYUI_TREE_STATE_NAME, "open");
}
}

if (StrKit.notBlank(iconCls)) {
if (!EASYUI_TREE_ICON.equals(iconCls)) {
m.put(EASYUI_TREE_ICON, m.getStr(iconCls));
}
}

// 如果Model中不存在text字段,则填充text字段,因为text字段是Tree控件指定字段
if (!EASYUI_TREE_TEXT_NAME.equals(textFieldName)) {
m.put(EASYUI_TREE_TEXT_NAME, m.getStr(textFieldName));
}

// 如果Model中不存在id字段,则填充id字段,因为id字段是Tree控件指定字段
if (!EASYUI_TREE_TEXT_ID.equals(idFieldName)) {
m.put(EASYUI_TREE_TEXT_ID, m.get(idFieldName));
}
}
}

return retList;
}

我当前的做法是,不配置me.setJsonFactory(new FastJsonFactory()),重写attr方法,将自定义属性put进去,这样貌似可以解决问题。
@Override
protected Map _getAttrs() {
// TODO Auto-generated method stub
Map attrs = super._getAttrs();
attrs.put("dept", dept);
attrs.put("deptName", getDeptName());
attrs.put("skillJson", getSkillJson());
attrs.put("skillText", getSkillText());
return attrs;
}

但我想,有没有更好的处理方法?