2016-10-20 17:00

ajax 只是机械化的拿到后端返回的数据,不要指望 ajax 拿到数据以后能自己去跳转,更不要指望 ajax 拿到数据以后会重新渲染页面,ajax 拿到数据后,唯一能做的就是用 javascript 使用这些数据,具体的使用要么是 js 更新页面相关的 html 节点,本么是用 location = data.url; 这样的语句跳转页面

2016-10-20 16:57

@jinyuanyuanab 重定向是服务端向浏览器发回一个 url,告知浏览器拿着这个 url 重新发起一个 http 请求,所以地址栏里面的 url 会改变

而 ajax 是一个异步请求,只能是机械式地获取服务端数据,并不会对重定向返回内容做特殊处理,所以 ajax 天然不能与重定向在一起说事

正确的做法是,要么不使用 ajax ,后端做重向向才有意义,要么使用 ajax,服务端返回一个 json 例如 {"url", "http://xxx.yyy.com"},ajax 拿到数据以后,再 location = data.url; 进行跳转

首先要把概念搞清楚,重定向天生不能与ajax 在一起使用

2016-10-20 16:51

界面看着很专业,有开源的资源不? 感谢分享

2016-10-20 16:48

@xRhbN 不要去扩展或改写 FileRender,因为 FileRender 支持了断点继传,不适合扩展成为那种可以支持网络资源的 Render,单写个 Render 是最好的

2016-10-20 16:47

如果你希望不执行 action,就在分支语句中不去调用 inv.invoke(),如果希望调用到达 action,就调用一下 inv.invoke(),没有什么其它诀窍,让程序根据这个逻辑走就可以了

2016-10-20 16:44

@都教授 我这我起码强调过几百次了,java web 规范决定了资源路径与 context path 有关,但是与任何框架无关,用 spring 与 struts 也是一样的结果

2016-10-20 16:42

@都教授 这是因为你的 context path 没有设置为 "",所以页面中所有不以 "/" 打头的 url 资源的路径都是跟着你浏览器的 url 乱串的。解决办法就是将 context path 改为 "",改一下 tomcat 的配置

2016-10-20 16:41

你在 UpdValidagtor 中先 getFile,然后就可以正常验证参数了

2016-10-20 11:42

model 有个 use(configName) 方法可以绑定,可以用一用

2016-10-20 11:34

创建一张数据表,记录动作的过程,过程的最终态要么是成功,要么是停在了某个过程没往后走,要么是失败状态

整个动作如果出现问题,分析一下这张表中的数据,做出相应的处理即可,这个是纯业务问题,业务问题首先想到的是以数据为中心,做任何事情都想象成对数据的存取、加工、组合、展现,数据是核心且相对稳固,业务可以是千变万化,只有抓住数据这个核心,才能把控住千变万化的业务

2016-10-20 11:30

JspSkipHandler 中的核心代码改成如下就可以了:
if (target.endsWith(".html")) {
HandlerKit.renderError404(...);
} else {
next.handle(target, req, resp, isHandled);
}

2016-10-20 11:20

感谢你的分享

2016-10-20 11:20

前端一定要掌握好,如果掌握好前端对你带来的好处是超越想象的,jfinal.com 社区前端完全由站长亲自手工搞定,超长全栈工程师的好处就是想做什么立即就可以,不需要浪费时间去寻求任何帮助

2016-10-20 11:17

核心调用的地方在 ActionHandler 与 Invocation 这两个类里面,只需要在这两个类里面设置一个断点,调试跟踪一下程序的走势就极度清楚了,jfinal 核心设计极其简单,200 行代码左右