如何通过AJAX从JSP发送JS中读取对象

时间:2014-07-23 21:35:32

标签: java javascript jquery ajax jsp

我不知道如何从回复对象中读取日期。 我从servlet发送到javascript两个字符串(isValid,liczbaObiektow)以及更多类型为Miasto的对象。我试着展示"克拉科夫"通过此代码提醒(数据+'。' + tnp)但不起作用。

我的源代码文件:

index.jsp:

<body>

    <label>Wojewodztwo</label>
    <select id="woj" name="wojewodztwa" size="1">
          <option value="" disabled selected>Wybierz Wojewodztwo</option>
          <option value="2">Małopolskie</option>
          <option value="4">Mazowieckie</option>
      </select>
      <BR/>
      <BR/>
      <BR/>
      <label>Miasta</label>
      <select id="miasto" name="miasta" size="1">
          <option value="" disabled selected>Wybierz miasto</option>
      </select>
      <BR/>
      <BR/>
      <BR/>
      <label>Zabytki</label>
      <select name="zabytki" size="1">
          <option value="" disabled selected>Wybierz artefakt</option>
      </select>
</body>

ajax.js:

$(document).ready(function() {
    //$('#miasto').append('<option value="test2">test2</option>');      
    //$('select[name="miasta"]').append('<option value="test2">Monarchia</option>');    

    var tnp;
    $('#woj').change(function () {
        //alert('Tui2');
        //var b = $(this).val();
        //alert(b);
        $.ajax({
            url: 'update',
            type: 'GET',
            dataType: 'json',
            data: $('#woj').serialize(),
            success: function(data) {
                if(data.isValid){
                    alert(data.liczbaObiektow);
                    for(var i=0; i < data.liczbaObiektow; ++i) {
                        tnp = 'a'+i;
                        alert(data+'.'+tnp);
                    }
                }
                else {
                    alert('Please enter a vaild username');
                }
            }
        }); 

    });
});

update.java:

class Miasto {
    int idMiasta;
    String opisMiasta;
    Miasto(int idMiasta, String opisMiasta) {
        this.idMiasta = idMiasta;
        this.opisMiasta = opisMiasta;
    }
}

@WebServlet("/update")
public class UpdateUsername extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private boolean isValid;


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //ServletContext sc = getServletContext();
        //sc.setAttribute("username", "sex");
        isValid = false;
        String wojewodztwo = request.getParameter("wojewodztwa");
        Map <String, Object> map = new HashMap<String, Object>();
        if ( wojewodztwo != null && wojewodztwo.trim().length() != 0 ) {

            if(wojewodztwo.equalsIgnoreCase("2")) {
                map.put("liczbaObiektow", "2");
                map.put("a1", new Miasto(22, "Krakow"));
                map.put("a2", new Miasto(33, "Nowa-Huta"));
            }
            else {
                map.put("liczbaObiektow", "3");
                map.put("a1", new Miasto(22, "Warszawa"));
                map.put("a2", new Miasto(33, "Starowka"));
                map.put("a3", new Miasto(33, "Twoja stara"));
            }

            isValid = true;
            //map.put("username", wojewodztwo);
            map.put("isValid", isValid);
            write(response, map);
        } else {
            map.put("isValid", isValid);
            write(response, map);
        }
    }

    private void write(HttpServletResponse response, Map<String, Object> map) throws IOException {
        response.setContentType("application/json");
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write(new Gson().toJson(map));
    }

}

非常感谢您的帮助。

0 个答案:

没有答案