2017-10-19 10:33

看一下我在这个贴子下面的回复: http://www.jfinal.com/share/230

2017-10-18 20:00

getPara("staffStore[0].username") 即可

2017-10-18 20:00

当然,最后要配置一下:
me.setRenderFactory(new MyRenderFactory());

2017-10-18 19:59

在日志里面针对这个异常单独配置,忽略掉这个异常就可以了,假定你的配置前缀为 log4j,大致如下:
log4j.com.jfinal.render.FileRender = OFF

不太记得配置细节了,上面的配置可能是错误的,如果不对,再试试下面这个:
log4j.org.apache.catalina.connector.ClientAbortException = OFF

还有一个更好的办法就是通过继承 RenderFactory 并覆盖掉 getFileRender() 方法,接管这个以后用自己的 MyFileRender extends FileRender 来代替原来的实现

在 MyFileRender 中的大致代码如下:
try {
super.render();
} catch(Exception e) {
if (e.getMessage().contains("ClientAbortException") ) {
// 忽略;
} else {
throw new RuntimeException(e);
}
}

2017-10-18 19:46

做个 MyRenderFactory extends RenderFactory, 并覆盖掉其中的 getJsonRender() 方法,在里面接管 JsonRender 实现

在接管的 JsonRender 中向控制台输出即可,大致这样:
public class MyJsonRender extends JsonRender {
public MyJsonRender(...) {
super(...);
}

public void render() {
super.render();
System.out.println(this.jsonText);
}
}

上面的 this.jsonText 字段名不一定对,以 JsonRender 中的代码为准。最后要配置一下:
me.setRenderFactory(new MyRenderFactory());

2017-10-18 17:32

打 war 包的时候,注意 jetty 相关的 jar 包不要打进去,jetty 的 jar 仅用于开发阶段。

如果你在使用 jetty 时,用的是 maven 项目,并且 dependency 是中的 scope 是 provoided 的,那么不会打进去

此外,看看是不是这些个问题:
http://blog.csdn.net/baimin7657/article/details/8650434
http://blog.csdn.net/u011781521/article/details/53713162
http://blog.csdn.net/bestcxx/article/details/51740652

2017-10-18 16:57

@航程序员 这里没有改过, getModel getBean 默认是需要 modelName 这个前缀的,如果不用的话,第二个参数传入 null 值或空串就可以,例如:
getModel(User.class, "");
getBean(User.class, "");

或者
getModel(User.class, null);
getBean(User.class, null);

2017-10-18 16:14

@淡定007 newPath 不对,因为新下载的文件名只是个名字,不是路径,你可以改成这样试一下:
render(file, "file.zip")

注意看第二个参数,就是一个名字,完全没有 path 什么事

2017-10-18 15:30

@航程序员 getBean(...) 是将你接收的对象当成是 java bean,注入数据的时候是找的那个对象里面的 setter 方法
例如属性是 userName,那么就去找你的 bean 里面的 setUserName(String ...) 方法,找到就调用它注入数据,那么你的 input 域中的 name="modelName.userName"

而 getModel(...) 是找你当前 model 中属性所对应的数据库表中的字段,例如你数据表中有一个 user_name 字段,那么你的 input 域中的 name="modelName.user_name"

2017-10-18 15:28

不建议在 url 中传这么大的参数,通过 http post 请求,在 body 中放入参数,这样连 encode 都不再需要

2017-10-18 15:27

url 中进行了 encode,那么接收的时候得 decode,这个是 web 基础, jfinal 是无法干预这个过程的

2017-10-18 15:26

renderFile(oldName, newName) 即可

这个是在 jfinal 3.2 中添加的方法

2017-10-18 12:30

@binker 你可以想象成微信公众号给你的项目发来的 xml 或者 json 字符串内容

2017-10-18 12:30

@binker 贴主说的 post 与表单 method="post" 还有所不同,他是指将数据整个当成 string 字符串内容放在 http body 中发送过来

2017-10-18 12:21

@binker
Controller controller= inv.getController();
String postData=HttpKit.readData(controller.getRequest());