2019-04-04 09:30
@JFinal
ActionHandler里面:
if (target.indexOf('.') != -1) {
return ;
}
RedirectRender类里面:
// 如果一个url为/login/connect?goto=http://www.jfinal.com,则有错误
// ^((https|http|ftp|rtsp|mms)?://)$ ==> indexOf 取值为 (3, 5)
if (contextPath != null && (url.indexOf("://") == -1 || url.indexOf("://") > 5)) {
result = contextPath + url;
} else {
result = url;
}
其他的没仔细看,结果就是这样:
原始url
https://www.baidu.com/s?wd=今天晚上吃什么
url encode
https%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3D%E4%BB%8A%E5%A4%A9%E6%99%9A%E4%B8%8A%E5%90%83%E4%BB%80%E4%B9%88
然后调用redirect(url)重定向无法成功,会自动在前面加上contextPath,变成
http://localhost/https%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3D%E4%BB%8A%E5%A4%A9%E6%99%9A%E4%B8%8A%E5%90%83%E4%BB%80%E4%B9%88
但是直接redirect("https://www.baidu.com/s?wd=今天晚上吃什么")的话,会中文乱码
所以现在我只能对部分进行编码了,只编码中文和特殊符号
2019-03-26 10:43
@1659811173 你先搞清楚controller是做什么的,需要些什么东西,具体实现可以去看看模板引擎的语法,了解下jfinal的生成器,和XxxxMeta