 <p>The <code>${userRecords}</code> here</p> <pre><code>${userRecords.user_first_name} ${userRecords.user_middle_name} </code></pre> <p>is a <code>List&lt;User&gt;</code>, however you're attempting to access it as if it's a single <code>User</code>. This is not valid. In EL, a <code>List</code> can only be accessed with an integer index, indicating the position of the list item you'd like to access, like so</p> <pre><code>${userRecords[0].user_first_name} ${userRecords[0].user_middle_name} </code></pre> <p>The exception is also basically telling that it expected an integer value instead of a string value. If you look closer at the stack trace, you'll see that a <code>ListELResolver</code> is involved.</p> <p>However, your concrete problem is bigger. You should actually be iterating over the list. Use the <a href="http://stackoverflow.com/tags/jstl/info">JSTL</a> <code>&lt;c:forEach&gt;</code> for that. E.g. (simplified from your odd code snippet):</p> <pre class="lang-html prettyprint-override"><code>&lt;table&gt; &lt;c:forEach items="${userRecords}" var="user"&gt; &lt;tr&gt; &lt;td&gt;${user.user_first_name}&lt;/td&gt; &lt;td&gt;${user.user_middle_name}&lt;/td&gt; &lt;/tr&gt; &lt;/c:forEach&gt; &lt;/table&gt; </code></pre> <p><em>(note: keep the <a href="http://stackoverflow.com/questions/2658922/xss-prevention-in-java/2658941#2658941">XSS attack hole</a> in mind if you really intend to redisplay them as input values)</em></p> <p>By the way, I'd work on your <a href="http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html">Java code conventions</a>. Those underscores are really not Java-ish.</p>