首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
jfinal 输出指令#( ) 遇到的问题 不过滤双引号 "
小毅好
2017-12-25 15:05
今天用户反馈一个问题, 查到最后发现是多了一个"引发的问题, 数据库中存的是
注意最后那个字符是 " 结果到了页面 是这样的。
所以前端报错了,
我html代码是这样写的:
项目:
JFinal
评论区
JFinal
2017-12-25 15:41
多出来的双引号从哪里来的?
回复
小毅好
2017-12-25 15:47
@JFinal
数据库里的
回复
小毅好
2017-12-25 15:49
@小毅好
dao.findById(String id) 从数据库取出来model 在前端 使用 "#()" 指令取出来就含有这个双引号了
回复
JFinal
2017-12-25 16:04
@小毅好
希望 jfinal 自动帮你过滤掉这个双引号?
回复
小毅好
2017-12-25 17:14
@JFinal
其实自定义指令也能够解决的,但是 这个指令使用的地方实在太多了, 而且我觉得前端有很多情况都是这样的,
比如说: var user_name = "#(session.user.name)"; 这个很常见吧
如果 session.user.name是 jfinal"
这时 结果就是 var user_name = " jfinal""; 这种情况 前端就会报错阻止下面js代码执行,
如果去掉双引号 var user_name = #(session.user.name);
这时结果就是 var user_name = jfinal"; 前端js代码也会报错,
回复
lyh061619
2017-12-25 17:47
你这个是微信开发的呢,要存昵称带特殊字号的是先把字段字符集设置为utf8mb4然后再存。至于多出现如 jfinal" 这样子的,拿数据代码过虑下就行了。js引用模模板参数变量是就要加双引号才能引用的正确的姿势如var user_name = "#(session.user.name)";就好了,因为两个语法解析的不同而不同。
回复
JFinal
2017-12-25 18:01
@小毅好
关键在于 jfinal 不方便干预,如果干预相当于 jfinal 去分析你的数据内容,jfinal 是无法精确知道数据中出现的这个双引号字符用户到底要还是不要
回复
小毅好
2017-12-25 18:11
@JFinal
明白了,我写个新的指令输出吧, 谢了大波总
回复
发送
我要反馈
热门反馈
扫码入社