I wonder if I am not understanding EL properly... I have a form
<form> .... <input type="text" name="time" /> <input type="submit" name="submit" /> </form> and then a nice sql update to catch the form <sql:update> INSERT INTO myTable VALUES ( ? ) <sql:param value="${param.time}" /> </sql:update> The problem comes when the form parameter is empty. Since the actual database field is a mySQL TIME field, there is a very big difference between an empty string and a null. Empty strings will be converted into '00:00:00' in the database but nulls will just stay null (nulls are allowed and no defaults are specified). The sql:param tag will never return a null if there is a "time" key in the params. Since the form always posts the parameter, I'll always have '&time=&somethingelse=' in my request. <sql:param> sees this as an empty string "", which becomes '00:00:00' in my database. This however, works: <sql:param><c:out value="${param.time}" /></sql:param> I am assuming that this is an intentional thing, but I'm not sure and I'd like to know why. Anyone? Thanks, R