Как я могу получить Tomcat для вывода пустой строки вместо нуля? - PullRequest
1 голос
/ 22 июня 2010

Я только что переключился на Tomcat 6.0.26 с другого движка Servlet / JSP. Ранее нулевые значения печатались как пустая строка. Тем не менее, Tomcat печатает нули как «ноль».

<% String str = null; %>
The value of str is <%= str %>.

Это выводит

The value of str is null.

Как мне заставить Tomcat заменить пустые / пустые строки пустыми?

Ответы [ 2 ]

4 голосов
/ 22 июня 2010

Это стандартное и ожидаемое поведение.Очевидно, предыдущий сервер имеет некоторые собственные настройки конфигурации для этого.Никто в Tomcat не приходит на ум.

Несмотря на это, скриптлеты - это винтажная техника, и ее использование не рекомендуется в течение десятилетия.На смену ему пришли теги (например, JSTL) и Язык выражений (EL) в сочетании с сервлетом в качестве контроллера.

Например, в сервлете doGet():

String str = null;
request.setAttribute("str", str);
request.getRequestDispatcher("page.jsp").forward(request, response);

и в page.jsp:

The value of str is ${str}

EL по умолчанию ничего не печатает, если значение равно null, тогда как scriptlet выражение (<%= %>) по умолчанию печатает все String#valueOf() возвращается.

См. Также :

2 голосов
/ 22 июня 2010

Похоже, вы хотите исправить это в своем коде, так как в tomcat нет возможности отключить это поведение. (Похоже, что в weblogic есть, что вы использовали - см. "PrintNulls").

Из javadocs Tomcat JspWriterImpl # print ()

public void print(java.lang.String s)
throws java.io.IOException

Распечатать строку. Если аргумент null, то выводится строка "null". В противном случае символы строки преобразуются в байты в соответствии с кодировкой символов платформы по умолчанию, и эти байты записываются точно так же, как метод write(int).

Указано:
print в классе javax.servlet.jsp.JspWriter
Параметры:
s - Строка для печати
Выдает:
java.io.IOException - Если во время записи произошла ошибка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...