参考了关于html5与jsp页面同样的html代码展示的页面效果不一样的问题
但仍没解决我的问题。
问题代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@include file="/include/taglibs.jsp"%>
<%@include file="/include/common.jsp"%>
<!DOCTYPE html>
这个页面已经是<!DOCTYPE html>声明了,后面没有任何代码直接跟<html>,但jsp的效果和html还是有差别。
没办法只好再看引入的页面是否有问题。
taglibs.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
common.jsp
----<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path; request.setAttribute("ctx",basePath) ; %> <script type="text/javascript"> var CTX = "${ctx}"; </script>
依次去掉这两个include页面,发现去掉common.jsp(把common.jsp引入的位置放入<head>标签内)后,效果一致了。
怀疑是因为common.jsp中包含了<script>标签,浏览器在解析common.jsp时尚未看到<!DOCTYPE html>这个html5声明,直接按html4的规则解析了整个jsp页面。
最终代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE html> <%@include file="/include/taglibs.jsp"%> <%@include file="/include/common.jsp"%> <html>