Ajax-Aufruf spring boot-controller umleiten Blick

Ich bin neu in spring-boot-Rahmen.
Ich habe eine jQuery-Methode, die aufgerufen wird nach dem Klick auf ein span-element. In diesem jQuery-Methode habe ich einen ajax-Aufruf, ein Aufruf an die spring-boot-controller und übergibt einen string als parameter. Der controller ist immer die parameter übergeben, aus der ajax-Aufruf. Aber es ist nicht das umleiten zu einer anderen Ansicht. Die andere Ansicht ist eine html-Seite aufgerufen ajaxView.html. Ich will ein Attribut hinzuzufügen, um die Ansicht als gut. Jede Hilfe wäre toll.

Hier mein ajax-Aufruf:

$(document).ready(function() {
$('.spanClass').on('click', '#id_1', function(event){   
     event.stopPropagation();

         var str = ((event.target.parentElement).parentElement.href);
            $.ajax({
                type: 'POST',
                url: "http://localhost:8080//span/view?term="+encodeURIComponent(str),
                contentType: 'text/plain',
                crossDomain: false,
                async:true,
                success:function(response) {        
                }
            });
  });
});

Hier mein controller-Methode:

@RequestMapping(method=RequestMethod.POST, value = "/span/view")
public @ResponseBody ModelAndView redirectAjax(String term, Model model) {

    Employee emp = new Employee();
    emp.setName(term);

    model.addAttribute("employee", emp);

    return new ModelAndView("redirect:/ajaxView");

}
InformationsquelleAutor khalbali | 2018-08-22



2 Replies
  1. 0

    müssen Sie rufen Sie einen controller wieder bilden Sie sich Ihre Ajax-success-Funktion zum öffnen der ajaxView.html Seite für Sie. :–

    1.) Ihre ajax-Aufruf sollte wie folgt sein :–

    $.ajax({
                    type: 'POST',
                    url: "http://localhost:8080//span/view?term="+encodeURIComponent(str),
                    contentType: 'text/plain',
                    crossDomain: false,
                    async:true,
                    success:function(response) {  
    
                    window.location = '/yourAjaxControllerName';
                    }
                });

    2.) Ihr controller :–

       @RequestMapping("/yourAjaxControllerName")
        public String getAjaxViewPage(HttpServletRequest request,Model model) {
    
           return "ajaxView";
    
         }
  2. 0

    Müssen Sie dies tun, in Ajax selbst.

    Sich der Erfolg der Methode von Ajax-Aufruf müssen Sie ärgern sich über die Antwort.

    $(document).ready(function() {
    $('.spanClass').on('click', '#id_1', function(event){   
         event.stopPropagation();
    
             var str = ((event.target.parentElement).parentElement.href);
                $.ajax({
                    type: 'POST',
                    url: "http://localhost:8080//span/view?term="+encodeURIComponent(str),
                    contentType: 'text/plain',
                    crossDomain: false,
                    async:true,
                    success:function(emp) {     
                      alert(emp);  
                      window.location.href = '/JspControllerHandler?employee='+ JSON.stringify(emp); //redirect     //this would be GET
                    }
                });
      });
    });

    Wird der controller return Employee-Daten anfordern, Ajax.

    @RequestMapping(method=RequestMethod.POST, value = "/span/view")
    public @ResponseBody Employee redirectAjax(String term, Model model) {
        Employee emp = new Employee();
        emp.setName(term);
        return emp;
    }

    Du Ajax haben verantwortungsvoll zu redirect zu einer anderen Seite

      @RequestMapping("/JspControllerHandler")
        public String redirectJsp(HttpServletRequest request,@RequestParam("employee") String empStr) {
        Employee employee = null;
        try
        {
            ObjectMapper mapper = new ObjectMapper();
            employee = mapper.readValue(empStr, Employee.class);
             model.addAttribute("employee", employee );
        }
        catch(Exception ex)
        {
            System.out.println("Error while converting JSON string to employee object.");
            ex.printStackTrace();
        }
           return "jspView";
         }
    • Genial! Aber wie können Sie den Zugriff auf die variable „emp“ bestanden aus dem Fenster.Lage.href = ‚/JspControllerHandler?Mitarbeiter=’+ emp; in den controller, redirectJsp ? Ich habe null-Wert, wenn ich den Zugriff versucht emp Eigenschaften. FYI emp Eigenschaften in ajax ist nicht null.
    • Code Aktualisiert . versuchen Sie es jetzt
    • Es funktioniert nicht. emp ist ein Objekt. Und ich will es bewahren wie ein Objekt, als es in einen string konvertieren. Ich beabsichtige, übergeben Sie das Objekt an die jspView.html Seite als Modell Attribut.
    • Code ist aktualisiert. Sache ist, dass Sie brauchen, um zu konvertieren, dass JSON-Objekt und pass auf den Frühling-Modell

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.