I'm using the JSTL query tag to do the mysql query as following:
<sql:query var="altTime" dataSource="${dataSource}" scope="request">
SELECT distinct combined.alt_tm FROM (
SELECT distinct sal_tm as alt_tm FROM sales WHERE sal_snum=? AND sal_dt=? AND sal_trn=? AND sal_trm=?
UNION ALL
SELECT distinct tm_cr as alt_tm FROM credit WHERE stc_cr=? AND ym_cr=? AND trn_cr=? AND trm_cr=?
UNION ALL
SELECT distinct tm_nm as alt_tm FROM nmc WHERE stc_nm=? AND ym_nm=? AND trn_nm=? AND trm_nm=?
UNION ALL
SELECT distinct tm_gc as alt_tm FROM gift WHERE stc_gc=? AND ym_gc=? AND trn_gc=? AND trm_gc=?
) AS combined WHERE alt_tm != '00:00:00' LIMIT 1
<sql:param value="${store}"/>
<sql:param value="${date}"/>
<sql:param value="${trans_no}"/>
<sql:param value="${terminal}"/>
<sql:param value="${store}"/>
<sql:param value="${date}"/>
<sql:param value="${trans_no}"/>
<sql:param value="${terminal}"/>
<sql:param value="${store}"/>
<sql:param value="${date}"/>
<sql:param value="${trans_no}"/>
<sql:param value="${terminal}"/>
<sql:param value="${store}"/>
<sql:param value="${date}"/>
<sql:param value="${trans_no}"/>
<sql:param value="${terminal}"/>
</sql:query>
It works and now I'm trying to set the params dynamically by create it as a string and then put it into the tag. Change the last param tag to a string and test. In script
String test="<sql:param value=\"${terminal}\"/>";
In query tag, use the string as the last line
<%=test %>
But this fail while running. Error message: " No value specified for parameter 16"My guess is that it's parsed as a string and didn't run as a normal param. Any ideas that I can avoid this? Detail error messages below, it shows the last string which it shouldn't (should be parsed as a jtsl tag)
Exception handling request to /kwi_demo/generic2/ecd/ecd1.jsp: org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException:
SELECT distinct combined.alt_tm FROM (
SELECT distinct sal_tm as alt_tm FROM sales WHERE sal_snum=? AND sal_dt=? AND sal_trn=? AND sal_trm=?
UNION ALL
SELECT distinct tm_cr as alt_tm FROM credit WHERE stc_cr=? AND ym_cr=? AND trn_cr=? AND trm_cr=?
UNION ALL
SELECT distinct tm_nm as alt_tm FROM nmc WHERE stc_nm=? AND ym_nm=? AND trn_nm=? AND trm_nm=?
UNION ALL
SELECT distinct tm_gc as alt_tm FROM gift WHERE stc_gc=? AND ym_gc=? AND trn_gc=? AND trm_gc=?
) AS combined WHERE alt_tm != '00:00:00' LIMIT 1
<sql:param value=${terminal}/>
: No value specified for parameter 16