左侧菜单加载过慢问题

今天遇到一个左侧菜单加载了不到两分钟的问题,查看左侧菜单的源文件,竟然有14万行代码,其中90%是空行,于是我到tomcat的work目录下找到了该JSP对应的源文件,看到对应EL表达式下竟然有很多输出

out.write("<!-- 判断是否有该模块权限 -->\r\n");
            out.write("\t\t\t\t");
            if (_jspx_meth_c_005fset_005f9(_jspx_th_c_005fforEach_005f0, _jspx_page_context, _jspx_push_body_count_c_005fforEach_005f0))
              return;
            if (_jspx_meth_c_005fforEach_005f1(_jspx_th_c_005fforEach_005f0, _jspx_page_context, _jspx_push_body_count_c_005fforEach_005f0))
              return;
            out.write("<!-- 有该模块权限则展示 -->\r\n");
            out.write("\t\t\t\t");

由于加载的是菜单,所以会有多次循环,导致大量非显示空白。通过查找,网上基本是两种解决办法:
如果你是tomcat6的话很容易解决
在JSP页面中加入


<%@ page trimDirectiveWhitespaces="true" %>

这 个命令可以使jsp输出的html时去除多余的空行(jsp上使用EL和tag会产生大量的空格和空行)
如果你是tomcat5的话可以采用如下在tomcat中的全局配置
在server.xml中定义
[size=medium]
<servlet>  
<servlet-name>jsp</servlet-name>  
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>  
<init-param>  
<param-name>fork</param-name>  
<param-value>false</param-value>  
</init-param>  
<init-param>  
<param-name>trimSpaces </param-name>  
[/size]<param-value>true </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>  
 

这个方案有个缺点,它会去掉所有jsp EL标签之间的空格的换行符,两个${}变量之间的空格也会消失。,在部分情况下也来带来不便。
你需要自己定义一个JSTL表示的空格符号要解决这个问题是相当麻烦,要引入一个只有一个空格的变量。 
<c:set var="one_space"> </c:set>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值