jfinal写Restful出现一个问题求解决,急!!!

一个问题,就是前台传输的是这样的一条url:http://localhost:8080/api/appProxy/D7368B22-C6A7-4BB8-BEEF-24AF335613F3/asgadgb,直接被jfinal被过滤掉了该怎么解决?


报错信息是:

    [WARN]-[Thread: qtp1983747920-28]-[com.jfinal.core.ActionHandler.handle()]: 404 Action Not Found: /api/appProxy/D7368B22-C6A7-4BB8-BEEF-24AF335613F3/asgadgb


我使用的是jfinal3.3;詹总求解决!!!

评论区

Max_Qiu

2018-08-10 14:43

你在controller中加入public void index() {}方法后再试一下

Krsguan

2018-08-10 14:46

@Max_Qiu 现在是这条url进不到我写的任何东西里面,请求一经过jfinal就报404

Krsguan

2018-08-10 14:48

@Max_Qiu 本来是http://localhost/8080/ssss,这样子的url就可以,这样子的就不行,http://localhost/8080/sss/fweee,就是多用了一个/传输的参数就进不去

Max_Qiu

2018-08-10 14:50

@Krsguan 你可以先把路由配置和controller的部分代码贴出来,我这边也在写Restful,看看能不能帮到你

Krsguan

2018-08-10 14:51

好的

Krsguan

2018-08-10 14:54

@Max_Qiu me.add("/appProxy", AppProxyController.class);
me.add("/model", ModelStructureController.class);这是路由

Krsguan

2018-08-10 14:55

@Max_Qiu 这是controller @Before(AppProxyInterceptor.class)
@ActionKey("/api/appProxy")
public void getApp() {

String id = this.getPara();
// 获取前台json
JSONObject json = JSONObject.parseObject("pagingModel");
// 解析下一层
JSONObject pagingData = json.getJSONObject("pagingData");
JSONObject sortData = json.getJSONObject("sortData");
JSONArray filterData = json.getJSONArray("filterData");

Krsguan

2018-08-10 14:56

@Max_Qiu 这是拦截器 if ("GET".equals(method)) {
if (StringUtils.isNotBlank(s)) {
controller.setAttr(isRestfulForwardKey, Boolean.TRUE);
controller.forwardAction(controllerKey + "/getEodekd/" + s);
return;
} else {
controller.setAttr(isRestfulForwardKey, Boolean.TRUE);
controller.forwardAction(controllerKey + "/getApp");
}

} else if ("POST".equals(method)) {
controller.setAttr(isRestfulForwardKey, Boolean.TRUE);
controller.forwardAction(controllerKey + "/postAppId");
return;

Krsguan

2018-08-10 15:00

@Max_Qiu 主要是url的格式,一般的url是http://localhost:8080?ss=ssss&bb=aaa,但是那边前台传过来的是http://localhost:8080/ssss/bbbb,一个/倒是无伤大雅,但是两个就bao404了

Max_Qiu

2018-08-10 15:04

@Krsguan 我这边也不是很懂,马上登波总过来帮你看看

Krsguan

2018-08-10 15:07

Krsguan

2018-08-10 15:08

@JFinal jfinal不能解析这种的url格式吗? http://localhost:8080/model/app/参数/参数,一个/加参数是可以的两个/就不行了

Max_Qiu

2018-08-10 15:13

@Krsguan 你看一下jfinal的路由配置http://www.jfinal.com/doc/2-3,/参数/参数是不允许的

Krsguan

2018-08-10 15:22

@Max_Qiu 但是前台给的参数格式就是这个样子的

hzh740053757

2018-08-10 15:34

建个handler把url改改

JFinal

2018-08-10 15:48

@Krsguan jfinal 不支持这种路由,添加一个自定义的 Handler 将这个路由转换一下就可以了,参考 jfinal 的 com.jfinal.ext.handler 下面的一些实现类

热门反馈

扫码入社