You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by red phoenix <ro...@gmail.com> on 2009/04/20 18:01:52 UTC

struts2 show question

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

Re: struts2 show question

Posted by Dave Newton <ne...@yahoo.com>.
red phoenix wrote:
> <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>
> 
> 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?

This seems like a Hibernate question, no?

Dave


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: struts2 show question

Posted by Jim Kiley <jh...@summa-tech.com>.
Oh heck I misread your code there.  This is Struts 1 and not Struts 2, isn't
it?  Sorry about that.
jk

On Mon, Apr 20, 2009 at 12:08 PM, Jim Kiley <jh...@summa-tech.com> wrote:

> 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 <ro...@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
>



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

Re: struts2 show question

Posted by Jim Kiley <jh...@summa-tech.com>.
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 <ro...@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