先看三段代码:
<jsp:include page="targetPage.jsp"></jsp:include>
<jsp:include page="targetPage.jsp"/>
<jsp:include page="targetPage.jsp">
</jsp:include>
按照我们平常用这种标签的思路,这三个标签放在页面中应该都是对的没有问题。可是今天我就遇到一个问题,最后一个JSP页面死活报错,说必须要<jsp:param>标签才可以。也就是说如果你用</jsp:include>标签结尾,那么你中间必须用<jsp:param>标签!就是由于这个问题,我愣是花了一个下午把深圳嘉讯MAS系统中的很多jsp文件改了个遍。不知道这个问题是与tomcat5.5的bug还是什么,搞不懂。
也许在嘉讯的信息机上没有问题,因为信息机的默认配置是RedHat 9/Tomcat4,一个产品必然也是在它的默认配置上充分测试过的;但是由于我们公司自己的一些要求,我们把系统换成了ubuntu,tomcat相应也变成了tomcat5.5。顺便还提一个问题,就是locale的设置不一样所造成时间转换的问题。我觉得MAS系统在这个方面有些地方做得不好,体现在AppTools.java中,时间的转换有几个函数用的是DataFormat.getInstance()方法取得
当前Locale的时间转换格式化工具,那么它所要求的时间格式就与Locale有关了,这对于像我们公司这样部署到其他系统,或者用全英文环境的系统时会有一些问题,比如定时发送短信时的时间输入取不到,所以不能定时发短信了。其实对于时间输入格式已经确定的软件系统,用new SimpleFormat("FORMAT")的方式会更好一些。让我感到奇怪的AppTools这个某些方法用SimpleFormat有些用DateFormat.getInstance()方法。