Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JSP SQL Select语句中传递来自控制器的employeeId?_Java_Sql_Spring_Spring Boot_Jsp - Fatal编程技术网

Java 如何在JSP SQL Select语句中传递来自控制器的employeeId?

Java 如何在JSP SQL Select语句中传递来自控制器的employeeId?,java,sql,spring,spring-boot,jsp,Java,Sql,Spring,Spring Boot,Jsp,如果我将${employeeId}放入html标记(段落、锚点等)中,它会正确显示,但在通过sql准备语句从数据库中选择employee时,它不起作用,如:prepStatement.setInt(1,${employeeId})。如果我通过了1、2、3等等,而不是${employeeId},它会工作并显示相关结果,这意味着我的代码几乎是正确的,但它不能使用${employeeId},我尝试在${employeeId}周围添加单引号和双引号,但没有任何效果 编辑: JSP文件 <% Co

如果我将${employeeId}放入html标记(段落、锚点等)中,它会正确显示,但在通过sql准备语句从数据库中选择employee时,它不起作用,如:prepStatement.setInt(1,${employeeId})。如果我通过了1、2、3等等,而不是${employeeId},它会工作并显示相关结果,这意味着我的代码几乎是正确的,但它不能使用${employeeId},我尝试在${employeeId}周围添加单引号和双引号,但没有任何效果

编辑:

JSP文件

<%
 Connection connection = DriverManager.getConnection("jdbc:h2:file:./MANAGER", "test", "password");

 Statement statement = connection.createStatement();

 String queryString = "SELECT * FROM OWNER WHERE EMPLOYEEID = ? ORDER BY ID DESC LIMIT 1";

 PreparedStatement pstatement = connection.prepareStatement(queryString);

 pstatement.setInt(1, ${employeeId});

 ResultSet resultset = pstatement.executeQuery();

 if(!resultset.next()) {
     out.println("Sorry, could not find that publisher. ");
 } else {
%>

<%= resultset.getString("employeeId") %>

<%
   }
%>

参数
${employeeId}
语法错误,因为。而且,
PreparedStatement
不知道如何处理JSTL标记

如果
employeeId
是请求对象中存在的属性(例如,在控制器中设置为
request.setAttribute(“employeeId”,123)
),则替换

如果
employeeId
是在页面本身中声明和填充的变量(例如
),则替换


使用并尝试

感谢Arvind(Live and Let Live)的回复,我正在使用JSP中的select sql语句获取数据,而不是在Controller中,这就是为什么我认为$operator是正确的。我尝试删除request.getParameter,因为employeeId不是来自URL参数,但它仍然不起作用,您是否有其他方法或此方法的修改版本?@musabshakel-在这种情况下,您必须从
pageContext
获取它。我已经相应地更新了我的答案。为了进一步帮助您,我需要从您的JSP中获得更多的代码来查看它working@MusabShakeel-在更新的问题中,您没有发布您在
employeeId
中的值的位置。它通过使用get auth employeeId函数的model.addAttribute位于控制器中。
pstatement.setInt(1, ${employeeId});
pstatement.setInt(1, Integer.parseInt((String)request.getAttribute("employeeId")));
pstatement.setInt(1, ${employeeId});
pstatement.setInt(1, Integer.parseInt((String)pageContext.getAttribute("employeeId")));