如何在SpringMVC中访问html页面中的模型属性?

如何在SpringMVC中访问html页面中的模型属性?,spring,spring-mvc,Spring,Spring Mvc,我有一个SpringMVC项目,其中的视图是html页面。我正在控制器方法中设置模型属性,但无法在html视图页面上访问它 这是我的控制器方法 @RequestMapping(value = "/", method = RequestMethod.GET) public ModelAndView getData() { ModelAndView model =new ModelAndView(); model.addObject("name", "Jack"); model.se

我有一个SpringMVC项目,其中的视图是html页面。我正在控制器方法中设置模型属性,但无法在html视图页面上访问它

这是我的控制器方法

@RequestMapping(value = "/", method = RequestMethod.GET)
 public ModelAndView getData() {

  ModelAndView model =new ModelAndView();
  model.addObject("name", "Jack");
  model.setViewName("html/firstLayer.html");
  return model;

 }
这就是我在html页面中访问它的方式

<script type="text/javascript">
    var name1 ='${name}' ;
    console.log(name1);
 </script>

var name1='${name}';
console.log(name1);
但在控制台上,它正在打印${name},它应该打印Jack。
任何帮助都将不胜感激,谢谢。

您不能直接通过Javascript来实现这一点。您需要使用JSP文件来检索已设置的服务器端ModelAndView变量

或者你可以选择一个更好的解决方案

@RequestMapping(value = "/", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public String getData() throws JsonProcessingException {
    Map<String, Object> myData = new LinkedHashMap<>();
    myData.put("name", "Jacky");
    ObjectMapper objectMapper = new ObjectMapper();
    return objectMapper.writeValueAsString(myData);
}
这看起来比第一个更干净


您可以查看一些关于此的教程,以更好地了解它是如何工作的

在html中,我们可以使用模型值。所以,当加载文档时,名称将作为隐藏字段显示在页面中。使用javascript或jquery我们可以访问它。以下是一个例子:

<input type="hidden" id="name" value='${name}'/>

<script type="text/javascript">
    var name"1 = $(#name).val();
    console.log(name1);
 </script>

var name“1=$(#name).val();
console.log(name1);

您的viewResolver bean是什么样子的?为什么不使用JSP视图?@Mico这是项目要求,我们必须使用html页面ID您可以尝试var name1=“${name}”“@jagga如果必须使用HTML,一个选项是添加另一个RequestMapping,以JSON形式返回数据。然后用JavaScript获取数据。请提供解释。在html中,我们可以使用模型值。所以,当加载文档时,名称将作为隐藏字段显示在页面中。使用javascript或jquery我们可以访问它。请将此添加到您的答案文本中。
<input type="hidden" id="name" value='${name}'/>

<script type="text/javascript">
    var name"1 = $(#name).val();
    console.log(name1);
 </script>