我想从用户名等于当前用户的表中打印值,我从session.getattribute获取当前用户("用户名"),但是sql语句给出错误说&# 34;预期的符号相同",你能告诉我下面的代码有什么问题以及如何正确地做到这一点,谢谢
<sql:query var="studentcourse"
dataSource="${vle}"
SELECT course_name FROM studentcourse WHERE username = '<%=session.getAttribute("username")%>'
</sql:query>
<p>user = <%=session.getAttribute("username")%>
<% System.out.println("username");%></p>
答案 0 :(得分:0)
将其设置为JSTL变量,而不是直接尝试。您应该使用JSTL
taglib,
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
试试这段代码,
<c:set var="userName" value= "${sessionScope.username}"/>
<sql:query var="studentcourse"
dataSource="${vle}">
SELECT course_name FROM studentcourse WHERE username = ? ;
<sql:param value="${userName}"/>
</sql:query>
您可以通过两种不同的方式访问JSP页面中的会话范围变量,
<c:out value='${sessionScope["username"]}' /><br/>
<c:out value='${sessionScope.username}'/>
参考,