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