سؤال

كيف يمكنني تجريد مساحة بيضاء إضافية من إخراج صفحات JSP؟ هل هناك مفتاح يمكنني أن أقلبه على web.xml الخاص بي؟ هل يوجد إعداد محدد Tomcat؟

هل كانت مفيدة؟

المحلول

هناك توجيهات trimwhitespaces يجب أن تحقق هذا ،

في JSP الخاص بك:

<%@ page trimDirectiveWhitespaces="true" %>

أو في قسم JSP-Config الخاص بك web.xml (لاحظ أن هذا يعمل من مواصفات servlet 2.5.):

<jsp-config>
  <jsp-property-group>
    <url-pattern>*.jsp</url-pattern>
    <trim-directive-whitespaces>true</trim-directive-whitespaces>
  </jsp-property-group>
</jsp-config>

لسوء الحظ ، إذا كان لديك مساحة مطلوبة ، فقد تحتاج أيضًا إلى قطاع ذلك ، لذلك قد تحتاج إلى مساحة غير متجانسة في بعض المواقع.

نصائح أخرى

إذا كان ServletContainer لا يدعم JSP 2.1 trimDirectiveWhitespaces الخاصية ، ثم تحتاج إلى استشارةها JspServlet وثائق لأي معلمات التهيئة. على سبيل المثال هر, ، يمكنك تكوينه أيضًا عن طريق الإعداد trimSpaces init-param ل true في JspServlet في تومكات /conf/web.xml:

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

بديل مختلف تمامًا هو jtidyfilter. لا يقطر المسافة البيضاء فحسب ، بل إنه أيضًا تنسيقات HTML في المسافة البادئة الصحيح.

يتم دعم مساحات trimdirectivewhitespaces فقط بواسطة حاويات servlet التي تدعم JSP 2.1 وبعد ، أو في الحالة أو tomcat ، tomcat 6 (وبعض الإصدارات على سبيل المثال لا تومكات 6.0.10 لا تنفذها بشكل صحيح - لا تعرف الآخرين). هناك المزيد من المعلومات حول مساحات trimdirective whitespresh هنا:

http://www.oracle.com/technetwork/articles/javaee/jsp-21-136414.html

و هنا

http://railedesigns.com/rd/entry/trim_spaces_in_your_jsp1

إذا كنت تستخدم العلامات ، يمكنك التقديم هناك أيضًا:

<%@ tag description="My Tag" trimDirectiveWhitespaces="true" %>

وعلى JSP الخاص بك:

<%@ page trimDirectiveWhitespaces="true" %>

ليس ما تطلبه مباشرة ، ولكن ما يساعدني هو وضع علامات تعليق HTML بطريقة ذكية حول علامات JSP الخاصة بي ، وكذلك وضع المسافة البيضاء داخل علامة Servlet (<٪ ٪>):

${"<!--"}
<c:if test="${first}">
    <c:set var="extraClass" value="${extraClass} firstRadio"/>
</c:if>
<c:set var="first" value="${false}"/>
${"-->"}<%

%><input type="radio" id="input1" name="dayChooser" value="Tuesday"/><%
%><label for="input1" class="${extraClass}">Tuesday</label>

إضافة/تحرير tomcat الخاص بك catalina.properties ملف مع

org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false

أنظر أيضا: https://confluence.sakaiproject.org/display/boot/install+tomcat+7

يمكنك الذهاب خطوة واحدة إلى الأمام وأيضًا إزالة الخطوط الجديدة (إرجاع النقل) بين علامات HTML في وقت الإنشاء.

مثل التغيير:

<p>Hello</p>
<p>How are you?</p>

داخل:

<p>Hello</p><p>How are you?</p>

افعل ذلك ، استخدم maven-replacer-plugin وإعداده في pom.xml:

<plugin>
    <groupId>com.google.code.maven-replacer-plugin</groupId>
    <artifactId>replacer</artifactId>
    <version>1.5.3</version>
    <executions>
        <execution>
            <id>stripNewlines</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>replace</goal>
            </goals>
            <configuration>
                <basedir>${project.build.directory}</basedir>
                <filesToInclude>projectname/WEB-INF/jsp/**/*.jsp</filesToInclude>
                <token>&gt;\s*&lt;</token>
                <value>&gt;&lt;</value>
                <regexFlags>
                    <regexFlag>MULTILINE</regexFlag>
                </regexFlags>
            </configuration>
        </execution>
    </executions>
</plugin>

سيؤدي ذلك إلى تعديل JSPs فقط في الدليل ، ولا تلمس JSPs في مصادرك.

قد تحتاج إلى تكييف المسار (<filesToInclude>) حيث يوجد JSPs في.

من فضلك ، استخدم funcion trim ، مثال

fn:trim(string1)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top