اذهب إلى المحتوى

السؤال

نشر

أحاول استعمال تقنية Json للحصول على response انطلاقا من Servlet و صفحة JSP.

صفحة JSP:

<script>
$(document).ready(function(){
     $("#submitBut").click(function(){
         var formData=getFormData();
         var strUrl="rwcntrlr.do?action=loginForm";
         $.post(strUrl, {jsonData: JSON.stringify(formData)},function(response){
                response = jQuery.parseJSON( response);
                if(response.message=='not ok')
                {
                    alert("not ok");
                }
                else{
                    alert('OK');
                }
            });
    }); 
});
</script>

كود Servlet:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String formName=request.getParameter("action");
        if(formName.equalsIgnoreCase("loginForm")){
            String strJSONData = request.getParameter("jsonData");
            System.out.println(strJSONData);// data received correctly...
            JSONObject jsonResponse = new JSONObject();

            try{
                JSONObject requestedJSONObject = new JSONObject(strJSONData);
                String login_name = requestedJSONObject.getString("login_name");
                String password = requestedJSONObject.getString("password");
                if(login_name.equalsIgnoreCase("mark")){
                    response.setContentType("application/json");
                    jsonResponse.put("status", "OK");
                    response.getWriter().write(jsonResponse.toString());
                    }
                    else{
                        response.setContentType("application/json");
                        jsonResponse.put("status", "NOT OK");                       
                        response.getWriter().write(jsonResponse.toString());
                    }
            }
            catch(Exception ex){
                ex.printStackTrace();
            }           
        }
    }

النتيجة هي أني أستطيع الحصول على Form المُرسلة، لكن لا أستطيع إظهار البيانات، ولا أدري كيف أحل هذا المشكل؟

Recommended Posts

  • 0
نشر (معدل)

لإظهار نتيجة البيانات المُرسلة من قبل Json على صفحة Jsp، عليك بكتابة الكود التالي:

response.setContentType("application/json");
response.setHeader("cache-control", "no-cache");
PrintWriter out = response.getWriter();

out.println(jsonResponse.toString());
out.flush();

ملاحظة مهمة: في غالب الأحيان يقوم المتصفح بالاحتفاظ بالبيانات السابقة عبر مايسمى بـ cache لذا من الجيد إفراغ هذا الأخير عند كل تغيير  في كود Json المُرسل.

وللتأكد من وصول البيانات المُرسلة، يمكنك استعمال هذا الكود من أجل ذلك:

$.post(strUrl, {jsonData: JSON.stringify(formData)},
  function(response){
    if(response.status=='NOT OK') {
      alert("not ok");
    } else {
      alert('OK');
    }
  }, 'json');

 

تم التعديل في بواسطة E.Nourddine

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...