2017-03-15 17:00
@HotDoor 做一个 BaseController, 在其中实现一个 getModels() 功能来支持这个功能,方便重用
2017-03-15 16:59
@wyntergreg 可以试一试通过扩展 ISerializer ,并在这个扩展类中啥也不干来实现你想要的:是否可以把序列化改成可配置参数 这个功能
由于 redis 只支持 String 与 byte[] 这两种类型,而 java 类型是无限多的,例如 User 就是个类型,所以只有做序列化才可以存放无限种类的 java 对象进去,因此不做序列化的方案不好做
你可以试着做一下,记得搞定后再回来在分享频道发贴啊
2017-03-15 16:01
@HotDoor 让 modelName 带上一个下标,然后后端用一个 for 循环配合 getModel处理一下,例如:
input name="user_0"
input name="user_1"
for (int i=0; i < size; i++) {
user = getModel(User.class, "user_" + i);
list.add(user);
}
2017-03-15 15:39
@HotDoor 让多个对象使用不同的 modelName 前缀,然后通过调用不同的 getModel 来获取,例如:
User user = getModel(User.class);
Account account = getModel(Account.class);
2017-03-15 15:38
@伊森 单步调试跟踪到更深的地方,如 MultipartRquest 之中,这里才是 path 拼接的最终地方,baseUploadPath 是在启动时候会拼接的,也可以调试一下
2017-03-15 15:35
@wyntergreg 取用的时候,仍然用 jfinal 提供的 api 就可以了。如果你用别的工具取用,也只需要用同样的反向序列化算法就可以
你试着扩展一下 ISerializer 这个扩口来改变一下序列化算法,其中官方给出了两个实现类,一个是 fst 实现,一个是 jdk 实现,或许 jdk 实现就可以,你通过下面的代码切换一下:
redisPlugin.setSerializer(new JdkSerializer())
2017-03-15 13:59
@伊森 看看你的 baseUploadPath 是什么值,设置一个断点在 getFile 上,单步调试到底层 jfinal 源代码,瞬间就知道了