如何按请求将内容从 Freemarker 发送到 java?
How to send content from Freemarker to java by request?
我正在尝试将信息从 FreeMarker 模板发送到我的 Java 模型 class。
我试过这个:
//my array of string casted in a string
var pais = selected.join();
request.setAttribute(pais, "paises");
好的,现在我正在尝试在我的 Java class 中收集这些内容,这样做:
String paises = MgnlContext.getAttribute("paises");
但它确实有效。我尝试了其他类似的方法:
Stirng paises = MgnlContext.getInstance().getAttribute("paises");
但它总是returns null。
第一篇文章看起来不像 freemarker,而更像 JavaScript,所以这可能是您的问题。虽然 freemarker 指令是在服务器端执行的,但 freemarker 生成的 html 和 Js 是在客户端执行的,因此 w/o Ajax 调用 Js 无法与服务器对话(因此无法建模 class).
如果您真的有兴趣将某些东西从 freemarker 传递到 java 模型,模型会直接公开。您可以简单地在 java 模型中添加方法并从 freemarker 模板中调用它,例如
${model.myMethod(someParam)}
HTH,
一月
解决方案(通过 ajax 发送信息):
首先通过 javascript 获取值:
[#assign cpathx = ctx.contextPath]
[#assign url = model.getUrl() /]
var field = $('#key').val();
var calin = $('#calendarIni').val();
var calfin = $('#calendarFin').val();
var pais = selected.join();
var url = '${cpathx}${url}?paises='+pais+'&palabra='+field+'&calendarini='+calin+'&calendarfin='+calfin;
jQuery.post(url ,function(data) {
jQuery('#ajax').html(data);
});
现在我们可以在java中收集信息:
String paises = MgnlContext.getWebContext().getAttribute("paises");
String queryString = MgnlContext.getWebContext().getAttribute("palabra");
String dateStart = MgnlContext.getWebContext().getAttribute("calendarini");
String dateEnd = MgnlContext.getWebContext().getAttribute("calendarfin");
我正在尝试将信息从 FreeMarker 模板发送到我的 Java 模型 class。
我试过这个:
//my array of string casted in a string
var pais = selected.join();
request.setAttribute(pais, "paises");
好的,现在我正在尝试在我的 Java class 中收集这些内容,这样做:
String paises = MgnlContext.getAttribute("paises");
但它确实有效。我尝试了其他类似的方法:
Stirng paises = MgnlContext.getInstance().getAttribute("paises");
但它总是returns null。
第一篇文章看起来不像 freemarker,而更像 JavaScript,所以这可能是您的问题。虽然 freemarker 指令是在服务器端执行的,但 freemarker 生成的 html 和 Js 是在客户端执行的,因此 w/o Ajax 调用 Js 无法与服务器对话(因此无法建模 class).
如果您真的有兴趣将某些东西从 freemarker 传递到 java 模型,模型会直接公开。您可以简单地在 java 模型中添加方法并从 freemarker 模板中调用它,例如
${model.myMethod(someParam)}
HTH,
一月
解决方案(通过 ajax 发送信息):
首先通过 javascript 获取值:
[#assign cpathx = ctx.contextPath]
[#assign url = model.getUrl() /]
var field = $('#key').val();
var calin = $('#calendarIni').val();
var calfin = $('#calendarFin').val();
var pais = selected.join();
var url = '${cpathx}${url}?paises='+pais+'&palabra='+field+'&calendarini='+calin+'&calendarfin='+calfin;
jQuery.post(url ,function(data) {
jQuery('#ajax').html(data);
});
现在我们可以在java中收集信息:
String paises = MgnlContext.getWebContext().getAttribute("paises");
String queryString = MgnlContext.getWebContext().getAttribute("palabra");
String dateStart = MgnlContext.getWebContext().getAttribute("calendarini");
String dateEnd = MgnlContext.getWebContext().getAttribute("calendarfin");