Member 12680607 Ответов: 0

ОСП каскадные выпадающие


Всем привет,
Мой вопрос касается каскадного выпадающего списка в jsp с 2 выпадающими списками, где второй выпадающий список основан на выбранном значении первого. Я новичок в ajax,json,jquery, js и не могу решить эту проблему. Любая помощь будет высоко оценена

Мой код сервлета:

List<MeasuringPointParam> measuringPointParams = measuringPointParamManager.list(0);
        request.setAttribute("measuringPointParams", measuringPointParams);
 
        if (measuringPointCode == 7){
            measuringPointParams.subList(measuringPointParamCode = 5011, measuringPointParamCode = 5108);
        } else if (measuringPointCode == 509) {
            measuringPointParams.subList(measuringPointParamCode = 5109, measuringPointParamCode = 5113);
        } else if (measuringPointCode == 506) {
            measuringPointParams.subList(measuringPointParamCode = 5127, measuringPointParamCode = 5139);
        } else if (measuringPointCode == 507) {
            measuringPointParams.subList(measuringPointParamCode = 5140, measuringPointParamCode = 5152);
        } else if (measuringPointCode == 508) {
            measuringPointParams.subList(measuringPointParamCode = 5153, measuringPointParamCode = 5165);
        }
 
        JSONArray paramJSON = new JSONArray(measuringPointParams);
 
        String json = new Gson().toJson(paramJSON);
        response.setContentType("application/json");
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write(json);
 
        getServletContext().getRequestDispatcher("/WEB-INF/pages/log-param-form.jsp").forward(request, response);
    }


Мой код JSP:

<script>
$(document).ready(function() {
 
$('#measuringPointCode').change(function(event) {
    var measuringPointCode = $("select#measuringPointCode").parse(json).val();
    $.get('LogParam', {  
        measuringPointCode : measuringPoint 
    }, function(jsonResponse) {
 
    var select = $('#measuringPointParamCode');  
    select.find('option').remove();
      $.each(jsonResponse, function(index, value) {
      $('<option>').val(value).text(value).appendTo(select);
      });
    });
    });
});
</script>


<div>
                        <label for="measuringPoint"><fmt:message key="measuringPoint"/>:</label>
                        <select class="ui-widget-content ui-corner-all" name="measuringPoint" id="measuringPoint" required>
                                <c:forEach items="${measuringPoints}" var="measuringPoint">
                                <option value="${measuringPoint.measuringPointCode}" ${measuringPoint.measuringPointCode == logParam.measuringPointParam.measuringPoint.measuringPointCode ? 'selected' : ''}>${measuringPoint.measuringPointName}</option>
                            </c:forEach>
                        </select>
                    </div>
 
              <div>
                        <label for="measuringPointParamCode"><fmt:message key="energyParam"/>:</label>
                        <select class="ui-widget-content ui-corner-all" name="measuringPointParamCode" id="measuringPointParamCode" required>
                            <c:forEach items="${measuringPointParams}" var="measuringPointParam">
                                <option value="${measuringPointParam.measuringPointParamCode}" ${measuringPointParam.measuringPointParamCode == logParam.measuringPointParam.measuringPointParamCode ? 'selected' : ''}> ${measuringPointParam.energyParam.energyParamName}</option>  
                            </c:forEach>
                        </select>
                    </div>


Что я уже пробовал:

Проблема в том, что Gson не может обрабатывать циклические ссылки в сериализованных данных. Я буду благодарен за любую помощь или предложения.

0 Ответов