StrutsのLinkタグからHttpServletResponse#encodeURLが呼ばれない場合がある?

HttpServletResponse#encodeURLでいろいろとURLの処理をおこなっていたのだけど、あるときからこの処理が行われていないことが判明。
原因を調べたところ、JSPの以下の1行が原因だった。

<%@ page session="false" %>

この1行が存在するとSessionが無効になり、結果的にTagUtilsにてHttpServletResponse#encodeURLが呼ばれなくなっていた。

そもそもこの1行を追加したのが、

java.lang.IllegalStateException: レスポンスをコミットした後でセッションを作成できません
at org.apache.catalina.connector.Request.doGetSession(Request.java:2214)
at org.apache.catalina.connector.Request.getSession(Request.java:2024)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:831)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:842)

というエラーが多発したことが原因なんだけど、こっちはまだたまーにエラーが出ているようなので結局が何が原因でどう解決すればいいのかわからず。