2012-03-12 2 views
0

< 문자열, 다른 요청에 대해 다른 값을 가질 수있는 Double>map 문자열로 작성된 JSP가 있습니다.JSP/서블릿이 양식 데이터를 가져 오는 중

는 JSP 표시 : 맵의 요소를 반복하여

key --> Mutable input field with value for that key 

. 폼의 맨 아래에는 맵의 모든 값을 업데이트하는 서블릿 (POST)을 호출하는 제출 버튼이 있습니다.

게시 요청에서 매개 변수의 변수 목록을 얻는 방법에 대해 알지 못해서 어떻게해야합니까?

지금은 다음을 수행 생각 (의 의사 코드와 서식 예외를 무시)하고 있습니다 :

Map params = request.getParameterMap(); 
    Set<Entry<String, Double>> set = params.entrySet(); 
    Iterator<Entry<String, Double>> it = set.iterator(); 

    while (it.hasNext()) { 
     Entry<String, Double> e = it.next(); 
     if (map.containsKey(e.getKey())); 
      map.put(e.getKey(), e.getValue()); 
    } 

서블릿에서 JSP에서 동적 데이터를 얻을 수있는 더 빨리 또는 더 나은 방법이 있나요?

답변

1

더 빠르고 더 좋은지도 모르겠지만 맵을 JSON으로 변환 한 다음 매개 변수 맵을 검색하는 대신 단일 문자열로 해당 문자열을 다시 서블릿에 전달할 수 있습니다. 그런 다음 서블릿에서 매개 변수 문자열을 JSON Array 또는 다른 것으로로드 한 다음 반복 할 수 있습니다.

이것이 더 나은 접근이라고 생각하는 이유는 앞으로 while 루프에 조건을 넣지 않아도 서블릿에 더 많은 매개 변수를 전달할 수 있기 때문입니다.

//Create array 
    Map map = new LinkedHashMap(); 
    JSONArray jArray = new JSONArray(); 

    map.put("id", "asdf"); 
    map.put("name", "bbbdasfadsbb"); 
    map.put("address", "sadfasdfasdf"); 
    map.put("phone", "asdfdsafsdf"); 
    map.put("details", "asdasdf"); 
    map.put("randomText", "sdafasdfs"); 

    jArray.put(map); 

    //You can write this string out to a hidden field 
    //called mapAsJSONArray 
    String mapAsJSONArray = jArray.toJSONString(); 

    //....... 
    //Then in your servlet.... 
    String mapAsJSONArray = request.getParameter("mapAsJSONArray"); 
    JSONArray jsonArray = new JSONArray(mapAsJSONArray); 

    for (int i = 0; i < jsonArray.length(); ++i) { 
     JSONObject obj = jsonArray.getJSONObject(i); 
     String id = obj.getString("id"); 
     // ... 
    } 
+0

저는 ajax를 사용하여 json을 게시 매개 변수로 쓸 수 있다고 생각합니다. –

+0

왜 그런지 모르겠습니다. AJAX 또는 일반 HTTP를 통해 POST를 수행하고 있습니까? 어느 쪽이든, 그것은 작동합니다. – bsimic

+0

일반 HTTP. 그것은 작동해야합니다. 일단 테스트를 받으면 그때까지 답장을 해 드리겠습니다. –

관련 문제