我正在尝试将此scriptlet代码放在我的jsp页面中。
<%
if(session.getAttribute("UserName").toString().equals(null) || session.getAttribute("UserName").toString().equals(""))
out.println("<input type='button' id='Loginbtn' name='Loginbtn' value='Login' onclick='Alert.render()' style='height: 25px; width: 55px'>");
else
out.println("<form method='POST' action='Logout'><strong><input type='submit' value='Logout' id='LogoutSubmit' name='LogoutSubmit' style='height: 25px; width: 55px'></strong></form>");
%>
问题是 - 每次只有else块工作,即使我正在切换out.println打印,登录正常,但只有else块。
我也尝试在打印之前关闭脚本位置(组合脚本和jsp)并直接放置jsp代码。只有else块可以工作。
为什么?如果有会话,我如何在登录和退出按钮之间切换?
答案 0 :(得分:0)
if(session.getAttribute("UserName").toString().equals(null)
如果为null则抛出空指针异常,因为你不能在null上使用点运算符。
您可以使用if(session.getAttribute("UserName")==null
,因为无论变量是String还是Object,null都是相同的。
但我建议先将会话中的值拉出变量:
String username = (String)session.getAttribute("UserName");
if(username!=null && !"".equals(username.trim()))
{