ThymeLeaf+LayUI表单回显数据时特殊字符的处理
特殊字符有哪些:比如 ‘ ,< , > 等等
还有一种就是回车符号\n \t
当 你提交的数据中包含 很多特殊字符 并且有回车 比如 你在表单中提交了一个sql , 那么直接用下面的回显方式就会报错:
form.val{
"sql","[[${sql}]]" // sql跳转界面传过来的
}
这样直接回显的时候会报以下错误:
Uncaught SyntaxError: Invalid or unexpected token
如何避免呢,很简单:
使用ajax请求后端获取到要回显的对象(数据)
$.ajax({
async: false,
url: contextPath + 'demo/getSql',
type: 'get',
dataType:'json',
success: function (result) {
console.log(result)
form.val('formFilter',{
"sql":result.sql,
})
}
});
界面如下:
<form class="layui-form" lay-filter="formFilter">
<div class="layui-form-item">
<div class="layui-input-inline" style="width: 150px">
<label class="layui-form-label">sql:</label>
</div>
<div class="layui-input-inline">
<input type="text" id="sql" name="sql" autocomplete="off" lay-verify="required" class="layui-input"/>
</div>
</div>
</form>
后端请求如下:
@GetMapping("/getSql")
@ResponseBody
public Demo getBirtConfigById(HttpServletRequest request)
{
Demo demo = demoService.selectDemo();
return demo;
}