2017-08-22 17:29
@Arjen-Ribery redirect 是告知浏览器再次发起一个全新的请求, setAttr(...) 过来的数据必须要丢掉,这个是浏览器的行为,更深点说这是 http 协议规范
因此,这个是很正确的结果,不必纠结
2017-08-22 16:38
@linuxea jseesionid 只是一个 cookie 的 name 值而已,不同的项目用的名字不一样,例如 tomcat 用的是 jsessionid,而 php 用的别的,如果你用 jetty 的话可能又是另一个名称
比较大点的站点都会自己取名,例如本站就是 jfinalId,本质就是一个 cookie
2017-08-22 16:26
jsessionid 用的是 javaee 里面的 session,做集群的时候要考虑到 session 的共享,不能直接部署成集群
而 jfinal club 中的 session 是存放在共享的数据库中的 session 表里面的,你可以直接将 jfinal club 部署成集群,集群中的每个节点共享的是数据库中的 session 表中的数据
每个节点中的 ehcache 也对 session 做了缓存,避免每次都去读数据库,这样既保障了集群,又保障了性能
jfinal 源码直播完成后,会再开启 jfinal club 的源码的直播,session 是重点会讲的地方
2017-08-22 12:00
@Angel、心脏 你的验证不是要显示在浏览器的页面中吗? 用一个 img 标签让其 src 指向你的验证码图片生成的 action 即可,看一下本站的登录验证码图片的 src 立即明白:http://www.jfinal.com/login
2017-08-22 11:48
@十三牧 试着改造一下,应该是可行的
2017-08-22 11:42
通过继承 MetaBuilder 扩展一下即可,大致如下:
public void MyMetaBuilder extends MetaBuilder {
private Set myTables = new HashSet();
public void addTable(String table) {
myTables.add(table);
}
public boolean isSkip(String table) {
if (myTables.contains(table)) {
return false;
} else {
return true;
}
}
用的时候这样:
MyMetaBuilder mmb = new MyMetaBuilder();
mmb.addTable(要处理的 table);
mmb.setDialect(new MySqlDialect());
Generator gen = new Generator(...);
gen.setMetaBuilder(mmb);
gen.generate();