Attribute value request.getAttribute("pageNo") is quoted with " which must be escaped when used within the value
今天突然遇到這個奇怪的問題:google了一下,發現如下原因:
轉載自:csdn博客
遇到這樣的問題在網上找了解決方案現總結2點:
解決以上問題有兩種解決方案:
方案一
<jsp:include page="split_page.jsp">
<jsp:param name="jspUrl" value="<%=jspUrl%>" />
<jsp:param name="lineSize"
value="<%=request.getAttribute("lineSize")%>" />
<jsp:param name="searchFlag" value="T" />
</jsp:include>
這裏,在 value 中只是使用了 URL 而已。
然後報錯:
Attribute value request.getAttribute("lineSize") is quoted with " which must be escaped when used within the value
啊,無語,在另一個頁面中這麼寫就沒錯啊?
Google。
發現說是什麼 apache 升級到 6.0 後出現的 bug。
詳情見:
[#MMB-1706] quoted must be escaped - MMBase
然後跟蹤鏈接,這裏說的很詳細了:
Possible user code changes required when we upgrade to Tomcat 6.0.18
按照上面的說法,這麼改寫:
<jsp:include page="split_page.jsp">
<jsp:param name="jspUrl" value="<%=jspUrl%>" />
<jsp:param name="lineSize"
value='<%=request.getAttribute("lineSize")%>' />
<jsp:param name="searchFlag" value="T" />
</jsp:include>
其實只是把 value="" 改成 value=''。
方案二
把代碼改成
<jsp:include page="split_page.jsp">
<jsp:param name="jspUrl" value="<%=jspUrl%>" />
<jsp:param name="lineSize"
value="<%=request.getAttribute(/"lineSiz/")%>" />
<jsp:param name="searchFlag" value="T" />
</jsp:include>
雖然在編輯器中會顯示有錯 但是運行起來是沒有問題,tomcat版本的問題。