Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过javascript函数中的servlet列表进行foreach_Java_Javascript_Jsp_Jstl_El - Fatal编程技术网

通过javascript函数中的servlet列表进行foreach

通过javascript函数中的servlet列表进行foreach,java,javascript,jsp,jstl,el,Java,Javascript,Jsp,Jstl,El,Servlet代码: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); Facade f = new Facade(); //f.hotspots() return a list of object

Servlet代码:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    HttpSession session = request.getSession();
    Facade f = new Facade();
    //f.hotspots() return a list of object used as marker***
    session.setAttribute("hotspots", f.hotspots());
    prossimaPagina = "/map.jsp";
    ServletContext application = getServletContext();
    RequestDispatcher rd = application.getRequestDispatcher(prossimaPagina);
    rd.forward(request, response);
    return;
}
java脚本代码:

<script type="text/javascript">
var map;
function initialize() {
  var myLatlng = new google.maps.LatLng(10,10);
  var mapOptions = {
    zoom: 4,
    center: myLatlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
  placeMarker();
}

function placeMarker() {
    var icon = 'icon/hs.png';
    var hotspotList = <%=session.getAttribute("hotspots")%>;
    for ( var h in hotspotList ) {
    var marker = new google.maps.Marker({
        position: (h.getLat(),h.getLng()),
        map: map,
        icon: icon
    });
    }
}
    google.maps.event.addDomListener(window, 'load', initialize);
</script>

var映射;
函数初始化(){
var mylatng=new google.maps.LatLng(10,10);
变量映射选项={
缩放:4,
中心:myLatlng,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
map=new google.maps.map(document.getElementById(“地图画布”),mapOptions);
placeMarker();
}
函数placeMarker(){
var icon='icon/hs.png';
var热点列表=;
用于(热点列表中的var h){
var marker=new google.maps.marker({
位置:(h.getLat(),h.getLng()),
地图:地图,
图标:图标
});
}
}
google.maps.event.addDomListener(窗口“加载”,初始化);
我知道
表达式是错误的,但我想这样做。 我怎样才能做到这一点呢?

像这样使用

首先在jsp中设置一个变量

<% 
    List<String> param= List<String>session.getAttribute("hotspots");
 %>

然后像这样使用

 <script>
    var h = '<%=param%>';
 </script>

var h='';

当代码为javascriptJSP生成HTML输出时,您需要修改您所说的jsp问题。JS是HTML输出的一部分。JSP和JS根本不同步运行。您所需要做的就是编写JSP代码,使其能够准确地生成所需的HTML输出,您可以通过右键单击、在浏览器中查看或导入来验证。我想您可以返回JSON格式的
hotspot
中的对象列表,因此,它可以很容易地转换为JavaScript对象,您可以按照JS代码中提供的方式使用它。
List#toString()
列表的结果根本不代表有效的JS字符串数组。@Luigimendoza我知道这一点。但是如果你必须在javascript中读取java变量,那是唯一的方法。真的吗?这实际上与
var h='${hotspots}'完全相同,这仍然是错误的答案。如果你不能从头顶可靠地回答问题,请先自己尝试一下。没有正确的方法,因为这取决于你的设计,但这种方法也不能解决问题。