Have you tried writing a unit test to ensure that testList is populated
after your action executes?  I'm pretty sure you'll find that it isn't.
It looks to me like you're declaring testList to be a local variable within
your action method (you're doing "List testList = " instead of "testList =
").  So your local testList goes out of scope as soon as the action method
is done executing.  You need testList to be a field of your action, not a
local variable.

jk

On Mon, Apr 20, 2009 at 12:01 PM, red phoenix <rodphoe...@gmail.com> wrote:

> I have a table named mytable,it has two cols,col1 and col2,the data are
> col1   col2
> ---------------
> John   24
> Kate   18
>
> hibernate xml file is follows:
> <hibernate-mapping auto-import="false">
>  <class name="mytable" table="mytable" >
>  <id name="col1" column="col1" type="java.lang.String">
>   <generator class="assigned"/>
>  </id>
>  <property name="col2" type="java.lang.String">
>   <column name="col2" />
>  </property>
>   </class>
> </hibernate-mapping>
>
> Then I user struts2 to get the data by following statement: List
> testList=this.getHibernateTemplate().find(" from mytable");
> request.setAttribute("testList",testList);
> return SUCCESS;
>
> the action dispatch to following jsp page
>
> <table>
> <c:forEach var="test" items="${testList}">
>   <tr><td>
>        <c:out value="${test.col1}"></c:out>
>         <c:out value="${test.col2}"></c:out>
>   </td></tr>
> </c:forEach>
> </table>
>
> Above codes run well,it can show correct result
>  John   24
> Kate   18
>
> then I modify struts action,like following:
>  List testList=this.getHibernateTemplate().find(" select col1,col2 from
> mytable");
> request.setAttribute("testList",testList);
> return SUCCESS;
>
> the action dispatch to the same jsp,but this time,the jsp show nothing!
> Why? I don't understand what's wrong with my code? Anyone could help me to
> solve above problem?
>
> Thank
>



-- 
Jim Kiley
Senior Technical Consultant | Summa
[p] 412.258.3346
http://www.summa-tech.com

Reply via email to