jfinal添加多级路径,失败
public void configRoute(Routes me) { me.setMappingSuperClass(true); me.add("oauth/2.0/token", TokenController.class);
controller代码
import com.jfinal.aop.Inject; import com.jfinal.core.Controller; import com.uairobot.tts.client.biaobei.BiaoBeiClient; public class TokenController extends Controller { @Inject private BiaoBeiClient biaoBeiClient; public void index(String grant_type, String client_id, String client_secret) { String accessToken = biaoBeiClient.getAccessToken(client_id, client_secret); renderText(accessToken); } }
但是访问是404
版本是jfinal4.2
然后用一个 Handler 做一下转换,将 String target 参数转换一下即可:
public class MyHandler extends Handler {
public void handle(String target ...) {
if (taget.startsWith("oauth/2.0/token")) {
target = target.replace("oauth/2.0/token", "oauth/20/token");
}
next.handle(...);
}
原因是 jfinal 会将带有小数点的 url 当成是静态资源,不会处理掉
上面的方案是将带小数点的 url 转成了不带小数点的,而 controller 被映射成了不带小数点的