这是针对我正在使用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代码之外显示用户名可以正常工作。
答案 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>