nullpointException, когда я использую эти переменные, объявленные внутри скриптлета

Я получил следующий код внутри моего ‹% %> в моем файле jsp.

Здесь две проблемы:

Почему моя точка останова не останавливается на этих строках?

Почему возникает исключение nullpointerException, когда я использую эти переменные где-то внутри моего JSP, как эти ‹%=beneficiariesList%>. Отладка этого значения в eclipse в представлении дисплея говорит, что «список бенефициаров не может быть разрешен». Например, типоБенесиариоДатосКлиентес говорит значение "ХХХХ"

<% ...... bla bla bla

    String    tipoBeneficiarioDatosClientes = "XXXXX";
    String    beneficiariesList             = "XXXXX";
    if (null != polizaBean.xxxxx()  &&  !polizaBean.getTipoBeneficiario().isEmpty()) {
    tipoBeneficiarioDatosClientes = polizaBean.xxxxxx();

    if(tipoBeneficiarioDatosClientes.equalsIgnoreCase("xxxxx")) {

        JSONArray beneficiaries      = JSONArray.fromObject(polizaBean.xxxxx());
        beneficiariesList = beneficiaries.toString(); 
    }
}

%>

person mario salirrosas    schedule 29.03.2018    source источник


Ответы (1)


У вас есть NullPointerException, потому что переменные, которые вы используете внутри Scriptlets <% ... %>, доступны только внутри этого скрипта.

Если вы хотите объявить переменную, которая будет доступна в Выражениях <%= %>, вам нужно объявить их внутри блока Declatations <%! %>.

Из спецификации JSP 2.0:

Объявления используются для объявления переменных и методов на языке сценариев, используемом на странице JSP. ... Объявления инициализируются при инициализации страницы JSP и становятся доступными для других объявлений, скриптлетов и выражений.

person marojbor    schedule 29.03.2018
comment
Привет @marojbor, но у меня есть другие переменные, которые объявлены внутри скриптлета, и они работают без проблем. Единственная разница в том, что эти переменные получают свое значение по объектному классу, а не по строке. Например: Stirng aaaa = PolizaBean.getIdentifierFullName(); У меня нет проблем, там нет нулевых исключений - person mario salirrosas; 30.03.2018