java - 从 Java 管理动态 JavaScript 的最佳实践是什么?

标签 java javascript jsp markerclusterer

我正在 JSP 中开发一个网页,该网页使用大量从 Java 后端类动态生成的 JavaScript 代码。它是关于 Google map 和一个名为 MarkerClusterer 的 JS 库。

目前,此类通过处理 Java 中的字符串来生成 JavaScript 代码,并将其直接打印到 JSP 页面中,但是在 Java 字符串中编写 JS 并维护它变得有点复杂。

JavaScript 始终需要进行大量修改,因为此类在不同的项目中使用。理想情况下,我想以一种可以用作库的方式对其进行打包,而不需要进一步修改,所以这就是问题,最好的方法是什么?

这是部分代码:

public class JavascriptGenerator {

    public String gerarPorRegiao(String contextPath, List<Endereco> lista, boolean infoWindowEnabled) {
        String saida = "";

        saida += "<script type=\"text/javascript\" src=\"http://maps.google.com/maps/api/js?sensor=false\"></script>"
                + "<script type=\"text/javascript\" src=\""
                + contextPath
                + "/js/markerclusterer.js\"></script>"
                + "<script type=\"text/javascript\">"
                + "var map;";
        for(Estado e: Estado.values()) {
            saida += "var mc" + e.toString() + ";";
        }
                saida += "var selecionado;"
                + "var center = new google.maps.LatLng(-11.0, -51.9);"
                + "var geocoder = new google.maps.Geocoder();"
                + "var infowindow = new google.maps.InfoWindow();"
                + "var markerContent = new Array();"
                + "function geocoderInit() {"
...

最佳答案

我会说:不要。

不要动态生成 JavaScript。维护这将是一场噩梦。将 js 保存在静态文件中,并使用 ajax 来获取数据。您的数据可以采用 JSON 形式。可以使用您可以下载的许多 JSON 库之一从对象层次结构自动生成 JSON。

关于java - 从 Java 管理动态 JavaScript 的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19004361/

相关文章:

java - 如何删除默认边框以及如何锚定 jtable 的列标题?

java - 如何显示同一 View 类中的其他 View ?

javascript - 获取 jQuery UI 选项卡的 URI

jsp - 如何在 c 中执行 OR :if statement in jsp

java - JSTL中计算的jsp中访问JSTL变量

jsp - 相当于Struts 1.x "bean:define"标签?

java - 如何在 Java 8 Lambdas 中使用非最终变量

java - JPA 作为多线程

javascript - 如何挂接到 Firefox 网络请求弹出窗口?

javascript - 一个链接(onclick)更改两个属性