gpt4 book ai didi

javascript - 如何在javascript中嵌入JSP?

转载 作者:搜寻专家 更新时间:2023-10-31 23:03:58 24 4
gpt4 key购买 nike

我正在从事需要在 JSP 中读取数据库的项目,但 javascript 使用数据来呈现谷歌地图( map 点)。我不知道如何通过 javascript 访问 NoSQL 数据库,所以我正在考虑将 JSP 嵌入到 javascript 中以访问数据并将其作为一种将数据提供给 javascript 的方式。

我已经搜索了很多关于这些功能的信息,我想要这样的代码:

var a = <%=data %>

我如何控制脚本(因为它是 .js)和 index.jsp?

谢谢

最佳答案

Java 代码在服务器上运行,这意味着它在您的应用程序服务器上运行并帮助呈现 View (在本例中为 JSP)。 JavaScript 在客户端运行,这意味着它在客户端浏览器(Internet Explorer [ugh]、Firefox、Chrome 等...)上运行。因此,根据您当前的代码:

var a = <%=data %>;

假设 data 是一个 String 并且值为 "Hello World",生成的 HTML/JS 将是:

var a = Hello World;

这会产生错误。因此,您需要引用变量:

var a = '<%=data %>';

现在这将产生:

var a = 'Hello World';

对于更复杂的通信,例如从服务器向客户端传递列表或复杂结构或复杂结构列表,最好使用通用格式来交换数据,如 JSON。您可以将数据从服务器(最好在 Servlet 中)编码为 JSON 字符串,然后轻松地将其传递给 JavaScript 端。例如,使用 Jackson Java 库:

@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {
List<ComplexObject> complexObjectList = ... //get your data
request.setAttribute("complexObjectList", OBJECT_MAPPER.writeValueAsString(complexObjectList));
//forward to the desired view...
request.getRequestDispatcher("/WEB-INF/theView.jsp").forward(request, response);
}
}

然后在你的 JSP 中(使用 Expression Language 因为 you should avoid using scriptlets ):

<script type="text/javascript">
var complexObjectList = JSON.parse('${complexObjectList}');
//play with your new object in JavaScript side...
</script>

关于javascript - 如何在javascript中嵌入JSP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23087096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com