我正在使用spring mvc控制器。在内部控制器我正在放一些值让我们说模型中的字符串。现在我想重温那个值,或者只是说在javascript中打印这个值。我该怎么做? 这是我的控制器类。我正在添加“电影”作为关键。现在我想在java脚本中显示该电影的名称(不在JSP内部。但在JavaScript中)
@Controller
@RequestMapping("/movie")
public class MovieController {
@RequestMapping(value="/{name}", method = RequestMethod.GET)
public String getMovie(@PathVariable String name, ModelMap model) {
model.addAttribute("movie", name);
return "list";
}
}
这是我的JSP
<html>
<head>
//I want to print movie name inside java script not inside jSP body tag.
<script type="text/javascript">
var movie_name = ${movie};
alert("movies name"+ movie_name);
</script>
</head>
<body>
<h3>Movie Name : ${movie}</h3>//When i print here its working fine.
</body>
</html>
答案 0 :(得分:18)
使用此:
var movie_name = "${movie}";
而不是:
var movie_name = ${movie};
使用${movie}
时,该值会在没有引号的页面上放置。由于我猜它是一个字符串,Javascript要求字符串被引号括起来。
如果您检查了浏览器的控制台,则可能会看到Unexpected identifier
或___ is not defined
之类的错误。
答案 1 :(得分:1)
试试这个......
如果您已将对象添加到模型中:
model.addAttribute("someObject", new Login("uname","pass"))
然后,您将模型对象的属性视为
var user_name = ${someObject.uname}; // This is assuming that the Login class has getter as getUname();
var user_pass = ${someObject.pass};
答案 2 :(得分:0)
<html>
jsp code ...
<script>
some js code ..
..
var formProperty = <c:out value="${fromBean.property}" />
</script>
..
</html>
这对我有用,其中formBean是表单支持对象的名称,属性是表单类的文件