#java #jsp
Вопрос:
У нас есть сетка DOF, определенная программно, где экспорт по какой-то причине не работает.
Экспорт в буфер обмена работает нормально, но CSV, XML и PDF показывают нужное количество строк/столбцов, но пустые данные внутри. Я отладил достаточно далеко, чтобы добраться до
org.eclnt.jsfserver.util.ExpressionManagerV#getValueForExpressionString(javax.faces.context.FacesContext, java.lang.String)
По какой-то причине он возвращает пустую строку для всех значений в неработающих сценариях и возвращает правильные значения для экспорта в буфер обмена. Строка выражения, переданная в обоих случаях, одинакова. Похоже, что диспетчер не может быть разрешен должным образом в сломанных сценариях.
Функции экспорта можно найти во всех остальных сетках DOF в нашем проекте.
Ответ №1:
Очень трудно догадаться о причине, основываясь на текущей информации. Все экспортные операции используют метод «Listlt;Listgt; exportToStringListWholeGrid()» (привязка к классу, экспортер внутреннего класса), поэтому он используется как при экспорте буфера обмена, так и при других экспортах. — Не могли бы вы, возможно, отладить внутри этого метода один раз для экспорта буфера обмена и один раз для экспорта csv, а затем проверить, видите ли вы какую-либо разницу?
Ответ №2:
Итак, моя проблема заключалась в том, что у меня было такое выражение лица:
d.d_3.SomePageUI.dofGrid.puis['whatever'].value
это выражение разрешит значение столбца «что угодно» в таблице. У нас была дополнительная логика в геттере dofGrid (не спрашивайте, почему…), эта дополнительная логика зависала только при использовании экспорта CSV, PDF или XML (я думаю, это потому, что открывается новое окно и контекст каким-то образом меняется ?!)
Теперь плохо то, что я не получил сообщение об ошибке «в getter dofGrid произошло исключение».
Я получил сообщение об ошибке «dofGrid равен НУЛЮ» :/