jfinal renderJson 未返回json数据到前端,却报Template not found错误。

不多说,上代码。

这是config:

public void config() {

// TODO Auto-generated method stub

add("/api/user", UserController.class);

add("/api/userInfo", UserInfoController.class);

}

这是UserController

@Before(UserValidator.class)

public void add() {

UserAccount  ua = getModel(UserAccount.class);

boolean bool  = ua.save();

if(bool){

ua = getModel(UserAccount.class);

Result(200, ua);

}else{

Result(503);

}

}

这是请求路径http://localhost:8080/api/user    错误描述

[ERROR]-[Thread: http-8080-1]-[com.jfinal.core.ActionHandler.handle()]: /api/user

com.jfinal.render.RenderException: java.io.FileNotFoundException: Template "/api/user/index.html" not found.

at com.jfinal.render.FreeMarkerRender.render(FreeMarkerRender.java:147)

at com.jfinal.core.ActionHandler.handle(ActionHandler.java:97)

at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

at java.lang.Thread.run(Thread.java:745)

Caused by: java.io.FileNotFoundException: Template "/api/user/index.html" not found.

at freemarker.template.Configuration.getTemplate(Configuration.java:742)

at freemarker.template.Configuration.getTemplate(Configuration.java:665)

at com.jfinal.render.FreeMarkerRender.render(FreeMarkerRender.java:143)

... 14 more




评论区

nbjgl

2016-12-28 14:38

用form表单提交保存数据,后台你返回一个json?有句老话叫驴唇不对马嘴~好像说的就是这样的情况~这里你应该 使用 this.redirect("") ,保存好数据以后,将页面回跳到用户详情页去。如果你非要想后台返回json,那就前端用ajax提交数据。

选群

2016-12-28 21:11

@nbjgl 已经解决了,是我在拦截器里忘了写invoke方法;

dandan1017

2017-01-12 15:32

@选群 我也遇到了这个问题,如何设置返回的为json?而不是默认的视图呢?

选群

2017-01-17 10:46

@dandan1017 randerJSON()就行

花甲是花甲

2018-04-02 11:09

@nbjgl 只是写api不行吗?根本不存在前端

人生亦如此乎

2018-06-04 18:42

我也遇到了这种情况 returnMap.put("state", state);
returnMap.put("errorCode", errorCode);
returnMap.put("errorMsg", errorMsg);
renderJson(returnMap);

热门反馈

扫码入社