V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wemore
V2EX  ›  Java

jsp 输出 html 源码排版混乱

  •  
  •   wemore · 2016-09-02 21:17:36 +08:00 · 2675 次点击
    这是一个创建于 2794 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这是源码:
    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@page trimDirectiveWhitespaces="true" %>
    <%@ taglib prefix="s" uri="/struts-tags" %>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <title>登录成功</title>
      <link href="./text.css" type="text/css" rel="stylesheet">
      </head>
      <body>
     <s:div cssClass="sele">
    ${ users.name}

        登录成功
     </s:div>
      </body>
    </html>

    这是输出的html源码:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <title>登录成功</title>
      <link href="./text.css" type="text/css" rel="stylesheet">
      </head>
      <body>
     <div
                       id=""         
        
                 class="sele"    
        
        >abc

        登录成功
     </body>
    </html>
    刚学ssh,问题感觉在struts标签上,求各位菊苣解释。虽然不影响正常显示页面,但看起来太难受了。求各位菊苣给个解决办法

    12 条回复    2016-09-14 13:37:08 +08:00
    learnshare
        1
    learnshare  
       2016-09-02 21:23:45 +08:00
    不要直接看源码,可以通过浏览器看,或者通过 Sublime Text 的 HTML-CSS-JS prettify 插件格式化完成再看
    wemore
        2
    wemore  
    OP
       2016-09-02 21:34:31 +08:00
    wemore
        3
    wemore  
    OP
       2016-09-02 21:36:52 +08:00
    @learnshare jsp 显示到浏览器的页面源码显示乱,好多空格。 http://i1.piimg.com/567571/eee88b46435634cb.jpg
    misaka19000
        4
    misaka19000  
       2016-09-02 21:46:30 +08:00
    就是这样的, JSP 确实会存在这个问题

    想要解决可以参考[获取 Servlet 的响应并修改其内容]( https://www.nosuchfield.com/2016/03/29/%E8%8E%B7%E5%8F%96Servlet%E7%9A%84%E5%93%8D%E5%BA%94%E5%B9%B6%E4%BF%AE%E6%94%B9%E5%85%B6%E5%86%85%E5%AE%B9/),解决的思路是在响应发给客户端之前对响应的源代码进行格式化

    但是说实话,没有必要,因为源码这种东西需要那么好看干嘛呢?而且上面的这种方式还会增加程序的计算量

    不过也许除我这种之外还有更好的方法吧,期待楼下给出解答
    letitbesqzr
        5
    letitbesqzr  
       2016-09-02 21:47:05 +08:00   ❤️ 1
    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>
    ```
    misaka19000
        6
    misaka19000  
       2016-09-02 21:48:36 +08:00
    把链接重贴一下: https://www.nosuchfield.com/2016/03/29/获取 Servlet 的响应并修改其内容 /
    misaka19000
        7
    misaka19000  
       2016-09-02 21:52:40 +08:00
    @letitbesqzr 好厉害,学习到了
    wemore
        8
    wemore  
    OP
       2016-09-02 22:00:00 +08:00
    @letitbesqzr 不行,还是没有变化。那种方法和我在 jsp 里引<%@page   trimDirectiveWhitespaces="true" %>得到应该效果差不多,但是在这个里面没用。
    chocotan
        9
    chocotan  
       2016-09-03 11:18:16 +08:00
    tomcat 版本是?
    6.0.x 才支持 servlet 2.5
    wemore
        10
    wemore  
    OP
       2016-09-03 14:01:39 +08:00
    @chocotan tomcat 8.0
    wemore
        11
    wemore  
    OP
       2016-09-03 14:05:09 +08:00
    感谢各位回复,目前找了个不是很好的解决方法。在 struts.xml 里加<constant name="struts.ui.theme" value="simple"/>
    去掉模板效果可以。但是<s:textfield name="user.name" label="姓名"/>这种"label"好像会失效。不折腾了,减少 ui tag 使用吧,唉=。=
    ppwangs
        12
    ppwangs  
       2016-09-14 13:37:08 +08:00
    struts 还是能早点扔就扔吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5363 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 07:31 · PVG 15:31 · LAX 00:31 · JFK 03:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.