java - 使用 JSTL 访问模型对象

标签 java ajax spring jstl

我目前正在尝试掌握 AJAX,但在访问模型对象时遇到问题。

我的测试代码的作用是从下拉列表中获取所选值,当按下按钮时,它会将此值传递给 AjaxTest(),后者将参数附加到模型,但我似乎无法输出模型对象 - 我想知道为什么会这样?

param 肯定有一个值。

<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;
}

最佳答案

我认为您对客户端和服务器端有点混淆。 您的 java 看起来是正确的,但您的 js 正在尝试访问 jSTL 表达式( ${output} )。当页面呈现时,jSTL 表达式不会解析,这将在 Ajax 请求/响应发生之前进行。

你的js需要使用变量“data”,它是你的java添加到模型中的数据。像这样的事情:

$("#result).html("<p>Param: " + data.output + "</p>");

这假设模型是 json 希望这有帮助

关于java - 使用 JSTL 访问模型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10505771/

相关文章:

ajax - 网站抓取 : Waiting until site is completly loaded

java - STS 3.9 - Java 已启动但返回退出代码=13

java - 如何使用 Swagger Codegen 在 String 中定义枚举值

java - 使用 Spark 从服务器路径中的 Excel 文件创建 DataFrame

java - AppContext 中具有相同名称和相同类的两个 bean(其中一个被 mock )

java - 将 HashMap 插入任何数据库表

java - 在java中将字符串转换为arraylist <Character>

jquery - 使用 JQuery 新添加的具有多个 div 的元素

javascript - 使用 ajax 将函数写入 $_POST

angularjs - 无法通过 Jboss 4.2.2 部署使用 Spring Boot 构建的 Web 应用程序