首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
分享一个用Kv替代JavaBean接收前端简单参数的方法
飞.飞
2018-07-22 17:01
具体有什么妙用呢?简单举个例子,自由发挥想象..
项目:
JFinal
12
6
评论区
JFinal
2018-07-22 17:30
简洁好用,感谢你的分享
此外,jfinal 3.5 已经在 controller 中添加了如下方法:
String getRawData()
Kv getRawDataToKv()
T getRawDataTo(Class targetClass)
用起来会更极速
没有上述功能的 jfinal 版本可以引入一个 BaseController 先用上
回复
飞.飞
2018-07-22 18:31
@JFinal
期待3.5版发布~
回复
netwild
2018-07-23 08:14
@JFinal
3.5吗等不及了!gitee没找到3.5,去哪能尝尝鲜?
回复
JFinal
2018-07-23 17:15
@飞.飞
@netwild
现在你可以在你自己的 BaseController 添加一点点代码来实现:
private String rawData;
/**
* 获取 http 请求 body 中的原始数据,通常用于接收 json String 这类数据
* 可多次调用此方法,避免掉了 HttpKit.readData(...) 方式获取该数据时多次调用
* 引发的异常
* @return http 请求 body 中的原始数据
*/
public String getRawData() {
if (rawData == null) {
rawData = com.jfinal.kit.HttpKit.readData(request);
}
return rawData;
}
public T getRawDataTo(Class targetClass) {
Json json = Json.getJson();
if (json instanceof com.jfinal.json.JFinalJson) {
return (T)FastJson.getJson().parse(getRawData(), targetClass);
} else {
return (T)json.parse(getRawData(), targetClass);
}
}
public Kv getRawDataToKv() {
return getRawDataTo(Kv.class);
}
回复
jiren
2018-07-23 19:51
期待,这对 前后端分离项目十分友好
回复
netwild
2018-07-23 21:34
@JFinal
帅呆啦!
回复
Didier
2018-07-30 17:38
学习了
回复
ddjfinal
2018-09-06 17:54
@JFinal
Map parameterMap = getRequest().getParameterMap();
;然后再处理下,数组String[] 长度大于1的保持不变,等于于1的直接转为String,再,作为查询条件,在sql模板文件直接使用。数组大于1的,一般都是拼接成 in 语句用的。
回复
ddjfinal
2018-09-06 18:02
@ddjfinal
定义获取参数map的通用方法在基类controller里面用的时候直接取,非常方便。 一开头写错了,是这个样子, Map parameterMap = getRequest().getParameterMap();
protected Map paramMap() {
Map parameterMap = request.getParameterMap();
Map resultMap = new HashMap();
for (Map.Entry entry : parameterMap.entrySet()) {
if (entry.getValue() != null && entry.getValue().length > 0 && StrUtil.isNotBlank(entry.getValue()[0])) {
String values = "";
for (String s : entry.getValue()) {
values = values + "," + s;
}
resultMap.put(entry.getKey(), values.substring(1));
}
}
return resultMap;
}
这里是把数字转为,号分割了
回复
发送
我要分享
热门分享
扫码入社
此外,jfinal 3.5 已经在 controller 中添加了如下方法:
String getRawData()
Kv getRawDataToKv()
T getRawDataTo(Class targetClass)
用起来会更极速
没有上述功能的 jfinal 版本可以引入一个 BaseController 先用上