2016-05-13 32 views
0

我想打印表中用户名等于当前用户的值,即时通讯从session.getattribute(“username”)获取当前用户,但是sql语句给出了一个错误说“等于符号预期”,你能告诉我什么是错用下面的代码,以及如何做正确,谢谢从表中打印的jsp sql查询,相等的符号预期的错误

<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

将其设置为可变JSTL,而不是直接尝试。您应该使用JSTL标签库,

<%@ 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}'/> 

参考,

+0

谢谢:) @vinoth – Yomk

+0

不客气。如果您发现上述答案解决了您的问题,请将其标记为[accepted](http://stackoverflow.com/help/accepted-answer)和[vote up](http://stackoverflow.com/help/why-vote )可能对其他人有用。 –