这几天在做一个选课系统,同学遇到了一问题,在当前页面写的jsp:include语句传参,如下
<jsp:include page="courseInfo.jsp" flush="true" >
<jsp:param value='<%=courseId %>' name="courseId" />
</jsp:include>
在courseInfo.jsp页面中String courseId = (String)request.getAttribute("courseId"); ,但courseId得到却是null。
语法似乎没有错呀,怎么会这样呢?
其实,jsp:include语法却是没错,但是接受参数的时候request用错了方法。应该用getParameter()方法。
即:String courseId = request.getParameter("courseId");
这样问题就解决了。
那么,什么时候用request.getAttribute(),什么时候用getParameter()方法呢?
个人总结(如果有误,请多指教!不胜感谢!)
1. 一般使用getAttribute()之前必须在跳转之前的页面中存在request.setAttribute(name, value),使用的跳转一般是forward方法。
2. getParameter()方法没有对应setParameter()方法,主要用于接收form表单和include的传参。