Директива JSP trimSpaces не работает! - PullRequest
3 голосов
/ 02 апреля 2011

Я пытаюсь обрезать пробелы в JSP с помощью директивы trimSpaces в моем файле web.xml, но это не работает. Вот мой web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
            xmlns="http://java.sun.com/xml/ns/javaee" 
            xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd" 
            xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
            id="WebApp_ID" 
            version="2.4">

  <display-name>MyWebApp</display-name>

  <servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/login</url-pattern>
  </servlet-mapping>

  <init-param>
    <param-name>trimSpaces</param-name>
    <param-value>true</param-value>
  </init-param>

</web-app>

Я новичок в этом и не знаю, как решить проблему. Я попытался поместить в теги , но это не сработало. Может быть, что-то не так с XML-схемой? Или, может быть, моя версия JSP не верна? (Я установил Tomcat всего несколько месяцев назад, так что он довольно свежий)

Я использую Tomcat 7. Также, как видите, я использую Spring.

Есть предложения?

Ответы [ 3 ]

5 голосов
/ 02 апреля 2011

<init-param> для JspServlet должен находиться в web.xml самого servletcontainer , а не вашего веб-приложения.Перейдите в папку установки Tomcat и откройте файл /conf/web.xml.Найдите запись <servlet> в JspServlet и добавьте туда <init-param>.

Если вы хотите настроить ее глобально в web.xml вашего веб-приложения, например, потому что конфигурация сервлет-контейнеравне вашего контроля, вам нужно установить свойство <trim-directive-whitespaces> для <jsp-config>.

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <trim-directive-whitespaces>true</trim-directive-whitespaces>
     </jsp-property-group>
</jsp-config>
0 голосов
/ 21 января 2013

Я добавил директиву trimSpaces в файл web.xml в своем каталоге tomcat / conf и обнаружил, что он был проигнорирован при перезапуске моего сервера.Однако из любопытства я также добавил директиву scratchdir для переопределения рабочего каталога по умолчанию, просто чтобы посмотреть, была ли эта опция также проигнорирована.Когда я перезапустил tomcat после добавления этого параметра, директивы scratchdir и trimSpace были подобраны и применены.Я не очень понимаю, почему добавление директивы trimSpace само по себе не дает эффекта, но добавление его вместе с другой директивой заставляет его работать?Это немного неуклюжее решение, но, по крайней мере, оно работает.Я использую Tomcat 6.0.33.

<servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    <!-- trim white space in jsp -->
    <init-param>
        <param-name>trimSpaces</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>scratchdir</param-name>
        <param-value>/temp/tomcat/work</param-value>
    </init-param>
    <!-- these params are here by default -->
    <init-param>
        <param-name>fork</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>xpoweredBy</param-name>
        <param-value>false</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
</servlet>
0 голосов
/ 02 апреля 2011
...