Java 使用JSTL访问模型对象
我目前正在尝试使用AJAX,但在访问模型对象时遇到了问题 我的测试代码所做的是从下拉列表中获取所选对象的值,当按下按钮时,它将该值传递到Java 使用JSTL访问模型对象,java,ajax,spring,jstl,Java,Ajax,Spring,Jstl,我目前正在尝试使用AJAX,但在访问模型对象时遇到了问题 我的测试代码所做的是从下拉列表中获取所选对象的值,当按下按钮时,它将该值传递到AjaxTest(),该按钮将参数附加到模型,但我无法获取似乎输出模型对象的值-我想知道为什么会这样 参数肯定有一个值 <div id="result"></div> <script type="text/javascript"> var param = document.getElementById("blah"
AjaxTest()
,该按钮将参数附加到模型,但我无法获取似乎输出模型对象的值-我想知道为什么会这样
参数肯定有一个值
<div id="result"></div>
<script type="text/javascript">
var param = document.getElementById("blah").value;
var loadUrl = "/ajax/" + param;
$("#button").click(function(){
$.post(loadUrl, function(data){
alert("Data Loaded: " + data);
$("#result").html("<p>Param: ${output}</p>");
});
});
</script>
@RequestMapping(value = "/ajax/{param}", method = RequestMethod.POST)
public @ResponseBody String AjaxTest(@PathVariable String param, final ModelMap model){
model.addAttribute("output", param);
return param;
}
var param=document.getElementById(“blah”).value;
var loadUrl=“/ajax/”+param;
$(“#按钮”)。单击(函数(){
$.post(加载URL、函数(数据){
警报(“数据加载:”+数据);
$(“#结果”).html(“参数:${output}”;
});
});
@RequestMapping(value=“/ajax/{param}”,method=RequestMethod.POST)
public@ResponseBody String AjaxTest(@PathVariable String param,final ModelMap model){
model.addAttribute(“输出”,参数);
返回参数;
}
我认为您对客户端和服务器端的概念有些混淆。
java看起来是正确的,但是js正在尝试访问jstl表达式(${output})。当呈现页面时,jstl表达式将无法解析,而呈现页面的时间将在Ajax请求/响应发生之前
js需要使用变量“data”,这是java添加到模型中的数据。大概是这样的:
$("#result).html("<p>Param: " + data.output + "</p>");
$(“#result).html(参数:“+data.output+””);
这假设模型是json
希望这能有所帮助我认为您对客户端和服务器端的概念有些混淆。
您的java看起来是正确的,但是您的js正在尝试访问jstl表达式(${output})。呈现页面时,jstl表达式将无法解析,而呈现页面的时间将在Ajax请求/响应发生之前
您的js需要使用变量“data”,它是您的java添加到模型中的数据
$("#result).html("<p>Param: " + data.output + "</p>");
$(“#result).html(参数:“+data.output+””);
这假设模型是json
希望这有助于当页面第一次加载时,JSP代码将执行。此代码包含以下行:
$("#button").click(function(){
$.post(loadUrl, function(data){
alert("Data Loaded: " + data);
$("#result").html("<p>Param: ${output}</p>");
});
});
$(“#按钮”)。单击(函数(){
$.post(加载URL、函数(数据){
警报(“数据加载:”+数据);
$(“#结果”).html(“参数:${output}”;
});
});
因此,JSP EL代码由容器解释,并且${output}被output属性的值替换。由于此属性为null,因此将生成以下HTML代码并发送到浏览器:
$("#button").click(function(){
$.post(loadUrl, function(data){
alert("Data Loaded: " + data);
$("#result").html("<p>Param: </p>");
});
});
$(“#按钮”)。单击(函数(){
$.post(加载URL、函数(数据){
警报(“数据加载:”+数据);
$(“#结果”).html(“参数:”);
});
});
当您单击该按钮时,将执行上面的JavaScript代码。它向AJAX URL发送一个AJAX请求,当响应返回时,它执行回调函数:
alert("Data Loaded: " + data);
$("#result").html("<p>Param: </p>");
警报(“数据加载:+数据”);
$(“#结果”).html(“参数:”);
因此,从服务器接收的数据显示在一个警报框中,然后由“result”标识的HTML元素的内容被替换为参数:
当页面第一次加载时,JSP代码将执行。此代码包含以下行:
$("#button").click(function(){
$.post(loadUrl, function(data){
alert("Data Loaded: " + data);
$("#result").html("<p>Param: ${output}</p>");
});
});
$(“#按钮”)。单击(函数(){
$.post(加载URL、函数(数据){
警报(“数据加载:”+数据);
$(“#结果”).html(“参数:${output}”;
});
});
因此,JSP EL代码由容器解释,并且${output}被output属性的值替换。由于此属性为null,因此将生成以下HTML代码并发送到浏览器:
$("#button").click(function(){
$.post(loadUrl, function(data){
alert("Data Loaded: " + data);
$("#result").html("<p>Param: </p>");
});
});
$(“#按钮”)。单击(函数(){
$.post(加载URL、函数(数据){
警报(“数据加载:”+数据);
$(“#结果”).html(“参数:”);
});
});
当您单击该按钮时,将执行上面的JavaScript代码。它向AJAX URL发送一个AJAX请求,当响应返回时,它执行回调函数:
alert("Data Loaded: " + data);
$("#result").html("<p>Param: </p>");
警报(“数据加载:+数据”);
$(“#结果”).html(“参数:”);
因此,从服务器接收的数据显示在警报框中,然后由“result”标识的HTML元素的内容被替换为参数: