12 Ekim 2016 Çarşamba

Spring MVC , Ajax ve jQuery Kullanımı – 2 (Kayıt İşlemi)


Bu yazımda sizlere Spring MVC , Ajax ve jQuery  , önyüzde ise Semantic UI kullanarak bir kayıt işleminin nasıl gerçekleştiğinden bahsedeceğim.
Senaryomuz şu şekildedir;      
     
  1.           Ad,Soyad,Şifre,Eposta ve Doğum Tarihi alanlarına kullanıcı verilerini girecek.
  2.           Girilen bu veriler Semantic UI form validationundan geçecek.
  3.           Eğer validation başarılı ise kayıt işlemini yapacak.


Semantic UI hakkında daha fazla bilgiye buradan ulaşabilirsiniz.

Senaryomuzu oluşturduğumuza göre artık işin kodlama kısmına geçebiliriz.

springrestornek.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="<c:url value="/resources/js/springrestornek.js?v=1.1" />"></script>
</head>
<body>
    <div id="container" style="width:600px;margin-left: 400px;height: 300px;"      align="center">
       <h2 style="color: orange;">Yeni Kayıt</h2>
       <div id="sroResponse"></div>
           <form:form id="kayitRestFormId" cssClass="ui tiny form" commandName="sro"
cssStyle="text-align: center;"
action="${pageContext.request.contextPath}/springrestornek/create.json">
             <div class="two fields" >
                 <div class="field">
                    <label><s:message code="springrestornek.ad" /></label>
                    <form:input path="ad" cssStyle="width:220px;" placeholder="Ad"/>
                 </div>
              <div class="field">
                  <label><s:message code="springrestornek.soyad"/></label>
                  <form:input path="soyad" cssStyle="width:220px;" placeholder="Soyad"/>
              </div>
            </div>
         <div class="two fields">
             <div class="field">
                <label><s:message code="springrestornek.sifre"/></label>
                   <form:input type="password" path="sifre" cssStyle="width:220px;" placeholder="Şifre"/>
             </div>
             <div class="field">
                <label><s:message code="springrestornek.eposta"/></label>
                <form:input path="eposta" cssStyle="width:220px;" placeholder="E-Posta"/>
             </div>
            </div>
           <div class="two fields">
               <div class="field">
                   <label><s:message code="springrestornek.dogumtarihi"/></label>
                       <form:input path="dogumtarihi" id="dogumtarihi" name="dogumtarihi" cssStyle="width:220px;" placeholder="Doğumtarihi"/>
               </div>
           </div>
           <div class="ui error message"></div>
               <input type="submit" id="saveButton"
class="ui primary button"
value="<s:message code="register.save"/>" />
&nbsp;&nbsp;&nbsp;&nbsp; <input type="reset"
class="ui button"
value="<s:message code="register.clear"/>" />
        </form:form>
<a href="${pageContext.request.contextPath}/springrestornekliste">Liste</a>
</div>
</body>
</html>



springrestornek.js

$(document).ready(function(){
  var picker = new Pikaday(
  {
     field: document.getElementById('dogumtarihi'),
     firstDay: 1,
     format : 'DD.MM.YYYY',
     minDate: new Date(1900, 0, 1),
     maxDate: new Date(2016, 12, 31),
     yearRange: [1900,2016],
     i18n: {
           previousMonth : 'Önceki',
           nextMonth : 'Sonraki',
           months :       ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran','Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'],
           weekdays : ['Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi'],
           weekdaysShort : ['Paz','Pzt','Sal','Çar','Per','Cum','Cmt']
    }
});
$('#kayitRestFormId').submit(function(event) {
var ad = $('#ad').val();
var soyad = $('#soyad').val();
var sifre = $('#sifre').val();
var eposta = $('#eposta').val();
var dogumtarihi = $('#dogumtarihi').val();
var json = { "ad" : ad, "soyad" : soyad, "sifre": sifre , "eposta" : eposta , "dogumtarihi" : dogumtarihi};
var rules = {
on : 'blur',
inline : true,
   fields: {
   ad: {
       identifier: 'ad',
       rules: [
       {
         type : 'empty',
         prompt : 'Ad boş geçilemez!'
       }
     ]
    },
  soyad:{
       identifier : 'soyad',
       rules: [{
         type : 'empty',
         prompt : 'Soyad boş geçilemez!'
      }]
    },
  sifre:{
  identifier : 'sifre',
  rules: [{
      type: 'empty',
      prompt : 'Şifre boş geçilemez!'
   }]
  }
 }
};
$('#kayitRestFormId').form(rules);
if($('#kayitRestFormId').form('validate form')){
$.ajax({
   url: $("#kayitRestFormId").attr( "action"),
   data: JSON.stringify(json),
   type: "POST",
   beforeSend: function(xhr) {
       xhr.setRequestHeader("Accept", "application/json");
       xhr.setRequestHeader("Content-Type", "application/json");
   },
   success: function(smartphone) {
       var respContent = "";
       respContent += "<a class='ui green label'>Kayıt Başarılı.</a>";
       $("#sroResponse").html(respContent);
    }
 });
}
event.preventDefault();
});
});


SpringRESTOrnekController.java

package com.mesutemre.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.mesutemre.dao.SpringRestOrnekDAO;
import com.mesutemre.model.SpringRestOrnek;

/**
* @author mesudemre
*
*/
@Controller
@RequestMapping(value = "/springrestornek")
public class SpringRESTOrnekController {

   @Autowired
   private SpringRestOrnekDAO service;

   @RequestMapping(value = "" , method = RequestMethod.GET)
   public String showSpringRestOrnekPage(Model model){
      model.addAttribute("sro", new SpringRestOrnek());
      return "springrestornek";
   }

   @RequestMapping(value = "/create" , method = RequestMethod.POST , produces =       MediaType.APPLICATION_JSON_VALUE,
  consumes = MediaType.APPLICATION_JSON_VALUE)
   
   @ResponseBody
   public SpringRestOrnek createSpringRestOrnek(@RequestBody SpringRestOrnek sro){
      return service.saveSpringRestOrnek(sro);
   }
}


Kayıt işlemimize ait ekran görüntüleri aşağıda ki gibi olur.











Hiç yorum yok:

Yorum Gönder