我正在尝试将会话对象中的值传递给自定义标记<l:LoginStatus userId="<% out.print((String)session.getAttribute("userId")); %>"/>
为什么这一行会给我错误:
org.apache.jasper.JasperException:/index.jsp(1,1)/header.jsp(64,131)等于符号
当我传递像<l:LoginStatus userId="4"/>
一切正常。
这对我没有任何意义,我认为使用out.print
会使=
无法成功。
答案 0 :(得分:3)
另一种方法是使用EL。这样可以产生更清晰的代码。
<l:LoginStatus userId="${userId}" />
答案 1 :(得分:2)
应该是:
<%= (String)session.getAttribute("userId") %>
一般来说,以这种方式做事情要好得多,而不是直接写入页面。此外,事情并不像你认为的那样完全正常。
答案 2 :(得分:0)
当您打印表达式的值时,您应该将语句设为
<l:LoginStatus userId="<%=out.print((String)session.getAttribute("userId"))%>"/>
或
<l:LoginStatus userId="<%=out.print(session.getAttribute("userId")).toString()%>"/>