<html lang="en">
<head>
<meta charset="UTF-8">
<title> Java, Spring Boot, FreeMarker</title>
<link href="/css/main.css" rel="stylesheet">
</head>
<script>
function myFunction() {
<@test/>
}
</script>
<body>
<h2>Java, Spring Boot, FreeMarker</h2>
<form action="/search" method="post">
Search : <input type="text" name="firstName" onkeyup="myFunction()" id = "fname">
<input type="submit" value="Submit">
</form>
<div style="background-color:lightblue">
<#macro test>
<#list empList as emp>
<div id="emp-data">
<ul>
<li>${emp}</li>
</ul>
</#list>
</div>
</#macro>
<script src="/js/main.js"></script>
</div>
</body>
当我运行这段代码时,我在浏览器控制台上得到一些错误:
(索引):60未捕获ReferenceError: myFunction未在HTMLInputElement.onkeyup ((索引):60) onkeyup @(索引):60-1小时前定义
在FreeMarker中有可能做这样的事情吗?
发布于 2018-08-19 07:38:36
在某种意义上你可以..。但它并不像你明显认为的那样。首先在服务器上解析所有的FreeMarker指令,比如<@test/>
,然后在浏览器中运行结果输出。因此,在浏览器看来,function myFunction() { ... }
直接在{ ... }
内部包含HTML div
-s,这是无效的JavaScript。
https://stackoverflow.com/questions/51911671
复制相似问题