--- red phoenix <[EMAIL PROTECTED]> wrote:
> I use struts2.0.11, I use Hibernate to get data and put it into attribute
> in
> struts2 action,like follows:
> public String show() throws Exception{
>   request=ServletActionContext.getRequest();
>   List myList=this.getHibernateTemplate().find("from test.MyModel");
>   request.setAttribute("myList",myList);
>   return SUCCESS;
>  }
> 
> Hibernate mapping file is follows:
> <hibernate-mapping>
>  <class name="test.MyModel" table="Test">
>   <id name="id" column="id" type="java.lang.String">
>    <generator class="assigned"/>
>   </id>
>   <property name="cname" type="java.lang.String">
>    <column name="name" length="50" not-null="false" />
>   </property>
> 
> Then I want to show myList by using <s:select> tag,like follows:
> <s:select label="Myname" headerKey="-1" headerValue="choose"
> list="%{myList}" listKey="MyModel.id" listValue="MyModel.cname" />

You're referring to the property as a value on the value stack, which it is
not. You'd need to either use JSP EL notation, ${myList}, or make myList a
property of the action class. I would recommend the latter, since that would
be canonical S2, and almost every single piece of documentation uses S2 in
that fashion.

> I have searched google for several days,but I don't find how to solve it.

You should also look at the S2 documentation wiki.

>   List myList=this.getHibernateTemplate().find("from test.MyModel");

I would also be wary of tying your action code so closely to Hibernate. In
general it's considered better implementation to put functionality like this
into a service object. This allows the injection of the service object into
the action via any of several IoC methodologies and makes it easier to test
the action in isolation.

Dave



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to