如何在javascript文件中访问Spring MVC模型对象?

2022-09-02 22:49:59

我正在使用春季3 MVC,我有以下课程。

外部系统将使用以下 URL 调用我的应用程序:

http://somehost/root/param1/param2/param3

我有一个弹簧MVC控制器方法如下:

public ModelAndView showPage(@PathVariable("param1") String paramOne, @PathVariable("param2") String paramTwo, @PathVariable("param3") String paramThree, HttpServletResponse response) {  
        SomeModel model = new SomeModel(paramOne, paramTwo, paramThree);
       return new ModelAndView("SomeJsp", "model", model);
    } 

一些模型.java

public class SomeModel{
 private String paramOne;
 private String paramTwo;
 private String paramThree;
//constructor
 //setters and getters

}

SomeJsp.jsp

//In this Jsp i have a div with few elements. Div is not visible by default.
//This jsp has externalJavascript included.
//I enable div and set the data into div elements using jquery.
<script src="<c:url value="/resources/js/extjs.js" />" type="text/javascript"></script>

外部J.js

$(document).ready(function() {

    //Here i need the model returned using ModelAndView
//I can get data from model and set into div elements.


});

在外部java脚本文件中,是否可以获取模型内容?如果可能的话,我该怎么做?

谢谢!


答案 1

JavaScript 在客户端运行。您的模型不存在于客户端,它仅存在于您呈现.jsp的服务器端。

如果您希望模型中的数据可用于客户端代码(即javascript),则需要将其存储在呈现页面中的某个位置。例如,您可以使用 Jsp 编写 JavaScript,将模型分配给 JavaScript 变量。

更新:

一个简单的例子

<%-- SomeJsp.jsp --%>
<script>var paramOne =<c:out value="${paramOne}"/></script>

答案 2

另一个解决方案可以在JSP中使用: <input type="hidden" id="jsonBom" value='${jsonBom}'/>

并使用jQuery在Javascript中获取值:

var jsonBom = $('#jsonBom').val();