jfinal 能支持这个路径吗? /v1/cart//64491

app接口服务用jfinal 重构了,结果发现有一个接口app写错了,多了一个 / ,

jfinal 有没有办法支持到这个路径,

现在 V1Controller 下

public void cart(){}

但是报了404

评论区

JFinal

2020-04-20 16:03

这种路径没有关系,你可以多创建一个 action 支持 /v1/cart//64491,然后里头啥也不干,用 forwardAction 转发到你现在写的那个 action 就行,大致如下:

// 你现在的 action 如下
public void cart() {
...
}

// 你新创建的 action 如下:
@ActionKey("/v1/cart//)
public void justForward() {
forwardAction("/v1/cart")
}

一点也不耽误

JFinal

2020-04-20 16:05

你也可以用一个 handler 处理一下:
public class MyHandler extends Handler {
public void handle(String target ,HttpServletRequest req, HttpServletResponse resp, boolean[] isHandle) {
if ( target.startWith("/v1/cart//")) {
target = target.replace("/v1/cart//", "/v1/cart/");
}

next.handle(target, req, resp, isHandled);
}
}

最后再配置一下:
me.add(new MyHandler());

wzi90921

2020-04-21 14:56

@JFinal 感谢波哥的解答。@ActionKey("/v1/cart//) 这个做法之前试过了,没有起作用。但是你的第二种方法,确实解决了问题。还是对Jfinal的理解不够深入。

热门反馈

扫码入社