在jstl sql:query

时间:2018-10-09 11:16:00

标签: java jsp jstl

在一些代码中挣扎,这些代码在一个jsp中效果很好,但在另一个jsp中却没有。

使用始终正确设置的java变量。

<%
chosen4 = assetselected;
System.out.println("chosen4 value=" + chosen4);
%>

页面上有一个按钮可以刷新并成功运行-

<%
String assetselected = request.getParameter("comparedid")
%>

然后我尝试在sql:query中使用变量

<sql:query var="queryresults" dataSource="jdbc/database">
select 
name
from asset 
where 
and asset.alerton = 1
and asset.id like <%=chosen4%>

必须使用like代替=,否则查询将永远不会返回任何内容(在工作的jsp中)。

我现在这不是世界上最好的代码,但是我对为什么<%= chosen4%>可以在一个jsp而不是另一个jsp中完美地工作感到困惑。

问候 拉尔夫

1 个答案:

答案 0 :(得分:0)

jsp中comparedid的第一个设置变量,由

<c:set var = "empId" value =${param.comparedid} />

然后像

这样的sql查询
<sql:query var="queryresults" dataSource="jdbc/database">
        select name from asset where asset.alerton = 1 and asset.id=?
        <sql:param value = "${empId}" />
</sql:query>
  

注意:您将必须在jsp顶部使用此标签<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c"%>   页面并在pom.xml上添加jstl依赖