当前位置: 首页 > 面试题库 >

JSP文档/ JSPX:是什么决定如何在输出中除去制表符/空格/换行符?

燕禄
2023-03-14
问题内容

我有一个格式很好的“ JSP文档”(“ JSP in XML”),当生成网页并将其发送给用户时,一些换行符被删除了。

现在真正奇怪的部分:显然,“主” .jsp总是将其 所有
换行符删除,但是对于主.jsp中包含的任何后续.jsp,换行符似乎都是随机删除的(有些在那,有些则没有)。

例如,如果我正在查看Firefox提供的网页并要求 “查看源代码 ,那么我将看到生成的内容。

那么,什么决定了何时/如何保留/删除换行符呢?

这只是我编造的一个示例…您可以强迫.jsp来提供此服务吗:

<body><div id="page"><div id="header"><div class="title">...

或这个:

<body>
  <div id="page">
    <div id="header">
      <div class="title">...

我认为已删除换行符以节省带宽,但是如果我要保留换行符怎么办?如果我想保持与.jsp文件中相同的XML缩进怎么办?

这可行吗?

编辑

按照skaffman的建议,我看了一下生成的.java文件,“主要”文件没有很多 out.write文件,
但是没有一个书写标签或换行符。与该文件相反,我从该主.jsp中包含的所有文件都有很多行,例如:

out.write("\t...\n");

因此,我想我的问题仍然完全一样:是什么决定了如何在输出中包含/删除制表符/空格/换行符?


问题答案:

根据JSP规范:

JSP.6.2.3语义模型

为了清楚地说明空白的处理,我们遵循XSLT规范的结构。处理JSP文档的第一步是识别文档的节点。 然后,将所有只有空格的文本节点从文档中删除;
唯一的例外是jsp:text元素中的节点,它们逐字保留。
生成的节点的解释如以下各节所述。模板数据要么直接传递到响应,要么通过(标准或自定义)操作进行调解。

因此,如果要保留空格,则需要在中包装所需的部分<jsp:text>



 类似资料:
  • 问题内容: 如何在 Python 中去除字符串中的空格? 问题答案: 为了从字符串中删除空格和尾随空格,Python 提供了 strip([str]) 内置函数。此函数在删除空格(如果存在)后返回字符串的副本。否则返回原始字符串。 After stripping all have placed in a sequence: javatpoint javatpoint javatpoint

  • 问题内容: 我想用一个换行符替换多个换行符,并用一个空格替换多个空格。 我尝试失败了! 我也在$ text上进行格式化。 $ text是从用户那里获取的用于BLOG的大文本,为了获得更好的格式,我使用了自动换行。 问题答案: 从理论上讲,您可以使用正则表达式工作,但是问题是,并非所有操作系统和浏览器都仅在字符串末尾发送\ n。许多人还会发送\ r。 尝试: 我简化了这个: 为了解决仅发送\ r的问

  • uglify压缩模板字符串如何去除换行和空格,如下图

  • 用户输入数据时,很有可能会无意中输入多余的空格,或者在一些场景中,字符串前后不允许出现空格和特殊字符,此时就需要去除字符串中的空格和特殊字符。 这里的特殊字符,指的是制表符(\t)、回车符(\r)、换行符(\n)等。 Python 中,字符串变量提供了 3 种方法来删除字符串中多余的空格和特殊字符,它们分别是: strip():删除字符串前后(左右两侧)的空格或特殊字符。 lstrip():删除字

  • 问题内容: 我怎么能 剥夺 / 删除 所有 空格 一个的 字符串 在PHP? 我有一个 字符串 像 输出应为 我怎样才能做到这一点? 问题答案: 您是指空格还是所有空格? 对于仅空格,请使用str_replace: 对于所有空格(包括制表符和行尾),请使用preg_replace:

  • 问题内容: 我知道这个评论PHP.net。我希望有一个类似PHP的工具,这样我可以简单地运行 我运行不成功的功能通过 我也运行regex函数失败 问题答案: 默认情况下,正则表达式不解释UTF-8字符。该元字符只占原来的拉丁语集。因此,以下命令仅删除制表符,空格,回车符和换行符 随着UTF-8成为主流,当该表达式到达新的utf-8字符时,它会更频繁地失败/停止,从而在空格后面留下了无法解释的内容。

  • 问题内容: 我想将其打印为PDFBOX创建的pdf。它不会让我插入制表符和空格,因为字体不支持它们。为什么这是一个问题,更重要的是,我该如何解决? 显示错误: 问题答案: 字体是一组字形。没有“ TAB字形”之类的东西。想象一下自己在100年前使用金属字形进行排版的情况,并且某个人(拥有打字机)向您询问“标签字形”。 在打字机中,点击TAB表示“跳至下一个标签位置”。字体不知道其自身位置,只知道其

  • 字符串中存在的首尾空格一般情况下都没有任何意义,如字符串“ Hello ”,但是这些空格会影响到字符串的操作,如连接字符串或比较字符串等,所以应该去掉字符串中的首尾空格,这需要使用 String 类提供的 trim() 方法。 trim() 方法的语法形式如下: 使用 trim() 方法的示例如下: 从该示例中可以看出,字符串中的每个空格占一个位置,直接影响了计算字符串的长度。 如果不确定要操作的