jsp:include包含servlet
2016-03-21 00:00
288 查看
和Struts2的<s:action/>这个标签一样,<jsp:include>也是在页面中包含另外的页面或servlet,一般在页面一加载就显示后台数据时这两个标签比较实用。
首先是一个servlet:
这个servlet要返回的页面:
包含该servlet的页面index.jsp:
这样在刷新index.jsp时加载servlet的数据。有时会报这个错:
org.apache.jasper.JasperException: /WEB-INF/admin/rootIndex.jsp (line: 83, column: 26) attribute for %>" is not properly terminated
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:443)
。。。
我的原因是
的servlet路径不正确,不要用<%=basePath>来加载路径,标签的page属性值可以是相对路径URL或者<%=表达式 %>,但同时只能存在其中一种
<jsp:include page="/frame/include.jsp"></jsp:include> 表示绝对路径
<jsp:include page="frame/include.jsp"></jsp:include> 表示相对路径
<jsp:include page="<%=uri %>"></jsp:include> 两个引号与<%=uri %>之间不能有空格
首先是一个servlet:
public class LoadAllNewsController extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { INewsService newsService = new NewsServiceImpl(); try { List<News> newsList = newsService.getAll();//得到数据 request.setAttribute("newsList", newsList); } catch (ServiceException e) { e.printStackTrace(); } finally{ newsService = null; //这里不再是跳转页面,而是include request.getRequestDispatcher("/WEB-INF/admin/loadAllNews.jsp").include(request, response); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
这个servlet要返回的页面:
<div class="row clearfix"> <div class="col-md-12 column"> <!-- 新闻列表 --> <c:choose> <c:when test="${newsList != null && newsList.size() != 0 }"> <table class="table"> <thead> <tr> <th>新闻标题</th> <th>发布时间</th> <th>城市</th> <th>分类</th> <th>编辑</th> <th>是否审核</th> </tr> </thead> <tbody> <c:forEach items="${newsList }" var="news"> <c:choose> <c:when test="${news.examined == 0 }"> <tr class="error"> </c:when> <c:when test="${news.examined == 1 }"> <tr class="success"> </c:when> </c:choose> <td><a href="root/newsDescription?id=<c:out value="${news.id}"/>"><c:out value="${news.title }"></c:out></a></td> <td><fmt:formatDate value="${news.publishTime }" pattern="yyyy年MM月dd日 HH:mm:SS" /></td> <td><c:out value="${news.city }"></c:out></td> <td><c:choose> <c:when test="${news.category == 1 }">社会</c:when> <c:when test="${news.category == 2 }">国际</c:when> <c:when test="${news.category == 3 }">军事</c:when> <c:when test="${news.category == 4 }">娱乐</c:when> <c:when test="${news.category == 5 }">时尚</c:when> <c:when test="${news.category == 6 }">科技</c:when> <c:when test="${news.category == 7 }">财经</c:when> <c:when test="${news.category == 8 }">体育</c:when> <c:when test="${news.category == 9 }">旅游</c:when> <c:when test="${news.category == 10 }">美食</c:when> <c:when test="${news.category == 11 }">汽车</c:when> <c:when test="${news.category == 12 }">教育</c:when> <c:when test="${news.category == 13 }">其他</c:when> </c:choose></td> <td><a href="root/listNewsByEditorId?id=<c:out value="${news.editorId }"/>"><c:out value="${news.editor }"></c:out></a></td> <td><c:choose> <c:when test="${news.examined == 0 }">未审核</c:when> <c:otherwise>已审核</c:otherwise> </c:choose></td> </tr> </c:forEach> </tbody> </table> </c:when> <c:otherwise> <h3>没有新闻</h3> </c:otherwise> </c:choose> </div> </div>
包含该servlet的页面index.jsp:
<div class="row clearfix"> <div class="col-md-12 column"> <jsp:include page="${basePath }/root/loadAllNews"></jsp:include> </div> </div>
这样在刷新index.jsp时加载servlet的数据。有时会报这个错:
org.apache.jasper.JasperException: /WEB-INF/admin/rootIndex.jsp (line: 83, column: 26) attribute for %>" is not properly terminated
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:443)
。。。
我的原因是
<jsp:include page="${basePath }/root/loadAllNews"></jsp:include>
的servlet路径不正确,不要用<%=basePath>来加载路径,标签的page属性值可以是相对路径URL或者<%=表达式 %>,但同时只能存在其中一种
<jsp:include page="/frame/include.jsp"></jsp:include> 表示绝对路径
<jsp:include page="frame/include.jsp"></jsp:include> 表示相对路径
<jsp:include page="<%=uri %>"></jsp:include> 两个引号与<%=uri %>之间不能有空格
相关文章推荐
- JSP和servlet的分页查询
- js中的可变参数
- js中的Map
- js数组去重
- Javascript 中的false,零值,null,undefined和空字符串对象
- js实现进度条效果
- 引入js文件加版本号
- 浅析 eval 解析json
- json格式字符串和json对象的区别
- javascript深入理解js闭包
- JSP中page和pageContext的区别
- JavaScript 中对内存的一些了解
- JSON介绍及使用
- JS学习总结
- javascript
- js中的正则表达式
- JavaScript系列(七: Cookie与Session?)
- JS 实现计算一段文字中的字节数,字母数,数字数,行数,汉字数。
- 视频播放插件Video.js简单使用
- javascript。。。