如何Struts2标签库中,获取值?

<s:iteratorvalue="#request.list"><s:propertyvalue="id"/><s:propertyvalue="name"/>可以传过... <s:iterator value="#request.list">
<s:property value="id"/>
<s:property value="name"/>
可以传过来的list里面还有个Person这个对象。。我想获取,这个对象中的name
怎么获取?
</s:iterator>
list返回的是一个Student, Student,属性有 id,name,Person (对象) Student 与Person的关系是,多对一的关系,在Action中,我是
public String execute() throws Exception {
List list=serviceInt.select(); -这是一个方法,返回 list<Student>
HttpServletRequest request=ServletActionContext.getRequest();
request.setAttribute("list", list);
} 然后在JSP页面中获取
<s:iterator value="#request.list">
<s:property value="id"/>
<s:property value="name"/>
<s:property value="person"/><br/> 这个属性在页面就会显示 ognl.NoConversionPossible
</s:iterator>
现在想取person中的name属性。。帮帮小弟
展开
 我来答
心吥动则不痛i
2015-07-22 · TA获得超过642个赞
知道小有建树答主
回答量:267
采纳率:0%
帮助的人:103万
展开全部
1.标签取值方式一
??? 通过<s:property value="" />取值
??? 当Action的valueStack中有该属性的值时,只需直接使用该属性的名字即可;
??? 当Action的valueStack中没有该属性的值时,比如在session,application范围中的属性值时,需要加#或者#attr.;
??? 例子:
??? 假设某Action中有person成员变量,在application中存在company属性
??? 那么我们可以通过以下方法取值:
??? <s:property value="person.name" />
??? <s:property value="#person.name" />
??? <s:property value="company.name" /> //无法取到,因为company不在action的valueStack中
??? <s:property value="#company.name" />
2.标签取值方式二
在任意的<s:/>标签内使用%{}来取值

当Action的valueStack中有该属性的值时,只需直接使用该属性的名字即可;
当Action的valueStack中没有该属性的值时,比如在session,application范围中的属性值时,需要加#或者#attr.;
例子:
假设某Action中有person成员变量,在application中存在company属性
<s:textfield name="person.name" value="person.name" /> //错误,value会直接显示person.name字样
<s:textfield name="person.name" value="%{person.name}" />
<s:textfield name="person.company.name" value="%{#company.name}" />
<s:textfield name="person.company.name" value="%{#attr.company.name}" />
3.获取JSP页面的request,session,application中的属性
?? 在页面中可以这样获取:
<td>${applicateionScope.counter}</td>
<td>${sessionScope.counter}</td>
<td>${requestScope.counter}</td>
或者直接这样用:${属性} ${userBean.username}。userBean可以是request或session中的对象。
struts2中的Action代码中的内容为:
ActionContext ctx = ActionContext.getContext();
ctx.getApplication.put("counter",new Integer(5));
ctx.getSession.put("counter",new Integer(5));
ctx.put("counter",new Integer(5));
ctx.put就是直接设置request的值。
也可以使用以下方式获得request:
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
struts2还提供了以下接口:
ServletContextAware:Action实现该接口,可以直接访问ServletContext。
ServletRequestAware:Action实现该接口,可以直接访问HttpServletRequest。
ServletResponseAware:Action实现该接口,可以直接访问HttpServletResponse。
wsslian_200532
2012-10-31 · TA获得超过152个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:88.9万
展开全部
检查下你的Student.hbm.xml是否在 person中设置了<one-to-many。。。。。。。。。。》
如果设置了,那么要想实现你的功能,需要两个 iterator 遍历
而list中一般只能放对象,即List<对象>,所以我建议你写成 Map<Student,List<Person>>
在JSP页面中,嵌套遍历下iterator就可以了

Java后台:
Map<Student,List<Person>> myMap=new LinkedHashMap<Student,List<Person>>();
最后: request.setAttribute("myMap", myMap);
JSP前台:
<s:iterator value="#request.myMap.keySet()" id="student">
${student.id}
${student.name}
<s:iterator value="#request.myMap.get(#person)" id="person">
${person.name}
</s:iterator>
</s:iterator>
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
张nbsp
2015-07-14 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:130
采纳率:0%
帮助的人:72.2万
展开全部
<s:property value="id"/>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappHkcasOTVqJa1M
2012-10-31 · TA获得超过206个赞
知道答主
回答量:121
采纳率:0%
帮助的人:44.9万
展开全部
<s:iterator value="#request.list">
<s:property value="id"/>
<s:property value="name"/>
<s:property value="person"/><br/> //改成下面
<s:property value="person.name"/><br/>

</s:iterator>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b5222c3
2012-10-28 · 超过19用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:48.5万
展开全部
<s:iterator value="#request.list" var='p'>
<s:property value="p.id"/>
<s:property value="p.name"/>
Person对象里要有相应的get方法
更多追问追答
追问
你的意思是
????
追答
 value是你要遍历的集合,var 是从集合中取出的当前元素(给这个元素命名为p),  p.id 就相当于调用你这个对象(Person)的getId()方法
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式