如何在jQuery AJAX中更改成功块中freemarker变量的值,我的页面有两个控制器第一个控制器使用GET方法返回一个带有视图名称的简单字符串,第二个控制器使用json和POST方法处理数据
给你
@RequestMapping(value = "myform", method = RequestMethod.GET)
public String formmethod(Model model) {
model.addAttribute("successMessage", "i'm in the firts controller");
return "forms/myform";
}
我的第二个控制器
@RequestMapping(value = "myform", method = RequestMethod.POST)
public @ResponseBody String getTags(@RequestBody final String json, Model model)
throws IOException
{
ObjectMapper mapper = new ObjectMapper();
User userMapped= mapper.readValue(json, User.class);
User person = new Usuario();
person.setName("new name");
person.setLastName("new lastname");
model.addAttribute("successMessage", person.getName());
return toJson(userMapped);
}
我的Json方法
private String toJson(User person)
{
ObjectMapper mapper = new ObjectMapper();
try
{
String value = mapper.writeValueAsString(person);
// return "["+value+"]";
return value;
}
catch (JsonProcessingException e)
{
e.printStackTrace();
return null;
}
}
我的传呼myform.html
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script type="text/javascript">
function doAjaxPost()
{
// get the form values
var name= $('#name').val();
var lastName = $('#lastName ').val();
var json = {"name" : name, "lastName " : lastName };
console.log(json);
var FreeMarkervariable = "${successMessage}";
//this brings me the value that i put in the firts controller
$.ajax(
{
type: "POST",
url: "myform",
data: JSON.stringify(json),
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
beforeSend: function(xhr)
{
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json");
},
success: function(data)
{
//HERE I WANT TO CHANGE THE VALUE OF MY FREEMARKER VARIABLE SO I CAN
//PRINT A SUCCESS MESSAGE IN A DIV
<#assign successMessage = "success">
},
error:function(data,status,er) {
alert("error: "+data+" status: "+status+" er:"+er);
}
});
}
</script>
<!-- NEW WIDGET START -->
<article class="col-sm-12">
<div class="alert alert-warning fade in">
<button class="close" data-dismiss="alert">
×
</button>
<i class="fa-fw fa fa-warning"></i>
<strong>${successMessage} I WANT TO PRINT A SUCCESS MESSAGE HERE </strong>
</div>
</article>
<!-- WIDGET END -->
<fieldset>
<legend>Name in view</legend>
<form name="myform">
Name in view: <input type="text" name="name">
<br>
Last Name in view: <input type="text" id="lastName" name="lastName">
<br>
<input type="button" value="Add Users" onclick="doAjaxPost()">
</form>
</fieldset>
<br>
到目前为止,我的freemarker变量得到了我放在success块中的值,但在我按下submit按钮之前它显示为success,我相信Success块是在我点击submit按钮后执行的,所以我不知道为什么在我按下按钮之前它就有这个值,在我按下submit按钮之前它应该有“我在firts控制器中”
Freemarker在服务器上生成其输出,然后发送到浏览器。浏览器从未看到任何freemarker“代码”。您需要使用javascript/jQuery更新strong元素。
所以代替你的
$("strong").text("Success");
我试图在我的FreeMarker模板中调用一个Java方法,该模板使用公共静态Java变量作为其参数之一。例如,如果FreeMarker代码在
问题内容: 由于我需要在使用Tensorflow训练模型之前为数据编写一些预处理程序,因此需要对进行一些修改。但是,我不知道如何像使用一样修改值。 最好的方法是可以直接修改。但是,在当前版本的Tensorflow中似乎不可能。另一种方法是改变到该进程,然后用改回来。 关键是如何更改为。 1):https : //www.tensorflow.org/versions/r0.8/api_docs/p
本文向大家介绍Java反射如何修改private final成员变量值,包括了Java反射如何修改private final成员变量值的使用技巧和注意事项,需要的朋友参考一下 大家都知道使用java反射可以在运行时动态改变对象的行为,甚至是private final的成员变量,但并不是所有情况下,都可以修改成员变量。今天就举几个小例子说明。 基本数据类型 测试代码: 运行结果:18 此时无法修改成
问题内容: 我正在尝试从cron运行python脚本,但是它无法正常运行,所以我假设它的路径env变量不同。无论如何,要在python脚本中更改变量吗? 问题答案: 您无需从python脚本中设置PATH。取而代之的是 在您的crontab的顶部。然后,这些环境变量将可用于通过您的crontab运行的所有cron作业。
问题内容: 我正在尝试在设置数组之前对要设置的数组进行排序,但是的参数是不可变的,并且会改变值。如何克服这个限制? 为了使这个问题脱离我自己的项目环境,我提出了以下要点: 我收到错误消息,指出该变量不可变,正在尝试对其进行突变。 问题答案: 不能对内部的值进行突变。如果实现观察者,则将新的属性值作为常量参数传递给它。 修改它以使用该怎么办? 在值存储之前被调用。 新值存储后立即调用。 您可以在此处
问题内容: 我有一个Freemarker模板,其中包含一堆占位符,在处理模板时会为其提供值。如果要提供userName变量,我想有条件地包括模板的一部分,例如: 但是,FreeMarker手册似乎表明if_exists已过时,但是我找不到其他方法来实现这一目标。当然,我可以简单地提供一个额外的布尔变量isUserName,并像这样使用它: 但是,如果有一种方法可以检查userName是否存在,那么