2

I'm stuck in the response of ajax spring controller response. My thymeleaf template code as under:

<div id="categoryContent" class="row no-margin">
    <div id="catTitle" class="col-md-12 no-padding">
        <h2 th:text="${ctaModule.getCtaSubTitle()}"></h2>
             <p class="starting-msrp">Starting at: <span id="price" th:text="${category.getPrice()}"></span></p>
    </div>
    <h3 class="roof-wheelbase col-xs-12" th:utext="${ctaModule.getCtaDesc()}"></h3>
</div>
<div class="row no-margin category-model-price">

Ajax call:

function get_vehicle_categories()
{
    var catController = $('#catTitle h2').html().toLowerCase().replace(/\s+/g, ''); 
    var heightInner = $('#height-inner').find('.active').find('.carousel-caption').html();
    var lengthInner = $('#length-inner').find('.active').find('.carousel-caption').html();

    $.ajax({
        url: './' + catController + '/{height}/{length}',
        type: "GET",
        dataType: "json",
        contentType: 'application/json',
        data: {
            height: heightInner,
            length: lengthInner
        },
        success: function(response) {
            console.log(response);
        },
        error: function(e) {
            console.log(e.Message);
        }
    });
}

My controller:

@RequestMapping(value = SiteUrls.CATAGORY_PAGE + "/{height}/{length}", method = RequestMethod.GET, 
        produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public String ajaxCategoryVan(@PathVariable("site") String site,
                    @RequestParam(required = false) String height, @RequestParam(required = false) String length,
                    Model model) {

    AssemblerDTO data = new AssemblerDTO();

    data.setSite(site);

    if((height == null || height.equals("")) || (length == null || length.equals(""))) {
        data.setBody("cargo");
        data.setRoof("std");
        data.setWheelbase("144");
        data.setGvwr("8550");
        data.setPowertrain("2500");
    } else {
        data.setBody("cargo");
        if(height.equalsIgnoreCase("Standard Roof")) {
            data.setRoof("std");
            data.setGvwr("8550");
            data.setPowertrain("2500");
        } else if(height.equalsIgnoreCase("High Roof")) {
            data.setRoof("high");
            data.setGvwr("8550");
            data.setPowertrain("2500");
        } else if(height.equalsIgnoreCase("High Roof Extended")) {
            data.setRoof("superhigh");
            data.setGvwr("8550");
            data.setPowertrain("2500");
        }
        if(length.equalsIgnoreCase("144 Wheelbase")) {
            data.setWheelbase("144");
            data.setGvwr("8550");
            data.setPowertrain("2500");
        } else if(length.equalsIgnoreCase("170 Wheelbase")) {
            data.setWheelbase("170");
        } else {
            data.setWheelbase("170E");
        }

    }

    setModel(data, model);

    return "category";
}

I'm receiving parameters successfully. I need to change the data as above thymeleaf template. Kindly help me out.

Leandro Carracedo
  • 7,233
  • 2
  • 44
  • 50
Waqas Baig
  • 63
  • 5

0 Answers0