昨天,我遇到了一個(gè)讓我很頭疼的問題。 我做了一個(gè)共通的jsp,單只測(cè)它是ok的,可是,放在別的jsp中include它,就會(huì)報(bào)錯(cuò)如標(biāo)題所示:The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit。調(diào)用它的jsp是這樣寫的:< %@include file="/模塊名/nani_include.jsp" % > 。于是我將這個(gè)include語句換成了<jsp:include flush="true" page="/模塊名/nani_include.jsp"/>。不再 報(bào)錯(cuò)了。因?yàn)?nbsp; <%@ include file=" "%>標(biāo)簽 是在jsp容器里將jsp文件翻譯成servlet文件,并編譯它時(shí),是靜態(tài)包含被包含jsp的,也就是編譯出來是一個(gè)類文件,而java類文件是不允許超過65k這么大的,所以會(huì)報(bào)錯(cuò)如標(biāo)題所示。而<jsp:include flush="true" page=" "/>在翻譯并編譯后,產(chǎn)生的是兩個(gè)類文件,也就是說 被調(diào)用的jsp生成獨(dú)立的類文件,而調(diào)用它的jsp生成的類文件中,只包含一個(gè)調(diào)用jsp的方法。
可是問題又出現(xiàn)了。參數(shù)傳不進(jìn)去。
解決方法是:調(diào)用它的jsp用<jsp:param>傳參。
<jsp:include flush="true" page="/模塊名/nani_include.jsp">
<jsp:param name="ss" value="_programForm"/>
</jsp:include>
被調(diào)用的jsp中,用el表達(dá)式接這個(gè)參數(shù)就好了:
${ss}
(不管里面用什么標(biāo)簽,name設(shè)成“ss”就好了)
聯(lián)系客服