如何使用Session将html list元素更改为当前登录用户的用户名?

时间:2019-06-08 17:45:57

标签: javascript html jsp

这是针对我正在使用JSP和Servlet的Web应用程序。我已经尝试了互联网上的许多建议,例如将列表元素的文本更改为用户名的JS函数,但此方法无效。看来问题是我的标签内的代码无法识别用户名,尽管在脚本标签外的代码仍能很好地工作。

这是我尝试的最后一个javascript函数:

<script type="text/javascript">
  var username='<%= session.getAttribute("username") %>';
  document.getElementById("loginbutton").textContent=username;
</script>

这是列表元素的html:

<li id="loginbutton" class="loginbutton"><a href="login.jsp">Log in/Sign    up</a></li>`

从上面的代码中可以看到,我创建了一个变量,该变量应保留会话中的username属性值,然后使用textContent尝试将loginbutton元素的值更改为username的值。登录后list元素保持不变,因此很明显该函数未获取用户名。提醒您,在JS代码之外显示用户名可以正常工作。

1 个答案:

答案 0 :(得分:0)

您可以使用jsp。

String user_label = session.getAttribute("username"); 
if(user_label == null){
    user_label = 'Log in/Sign    up';
}

<li id="loginbutton" class="loginbutton"><a href="login.jsp"><%=user_label%></a></li>`

使用javascript。

在脚本之外获取会话值。

String username = (String)session.getAttribute("username");

成功登录后获得用户名时,请使用Java脚本中的名称更新标签

<script type="text/javascript">
 var username = '<%=username %>';
 document.getElementById("loginbutton").text =username ;
</script>