今天重新翻看了一下以前写的程序
String []goodsid=relatedgoodsid.split(",");
List<GoodsT> list=new ArrayList<GoodsT>();
String []picturelist;
ActionContext.getContext().getSession().remove("relatedgoods");
for(int i=0;i<goodsid.length;i++){
GoodsT list1=this.getGoodstserviceimpl().findGoodsById(goodsid[i]);
if(list1!=null){
picturelist=list1.getPictureurl().split(",");
list1.setPictureurl(picturelist[0]);
list.add(list1);
}
}
Map<String,Object>map=new HashMap<String,Object>();
map.put("related", list);
ActionContext.getContext().getSession().put("relatedgoods", map);
在前端用struts2标签显示的时候大家要注意判断先非空和数组大小吧
<s:if test="#session.relatedgoods.related!=null&&#session.relatedgoods.related.size()>0">
<div class="righttitle">商品组合</div>
<div class="goodszuhe">
<div class="detailzuhe">
<ul>
<s:iterator id="bean" value="#session.relatedgoods.related" status="related">
<li>
<div class="zuheimg">
<a href="GetGoodsdetailBygoodsid.action?goodsid<s:property value="goodsid"/>"><img src="<%=basePath %>Uploads/<s:property value="pictureurl"/>"/></a>
<div class="txt"><input type="checkbox" id="relatedgoodsid" name="relatedgoodsid" value="<s:property value="goodsid"/>" /><s:property value="goodsname"/></div>
</div>
</li>
</s:iterator>
</ul>
</div>
<div class="detailzuheinfo">
<input id="buyzuhe" name="buyzuhe" value="购买此组合" type="button"/>
</div>
</div>
</s:if>
分享到:
相关推荐
1. value属性:可选的属性,value属性是指一个被迭代的集合,使用OGNL表达式指定,如果为空的话,默认就是ValueStack栈顶的集合。 2. id属性:可选属性,是指集合元素的id。 3. status属性:可选属性,该属性在迭代...
OGNL,全称为Object-Graph Navigation Language,是一种强大的表达式语言,主要被用于获取和设置Java对象的属性。它在Java开发中广泛应用于Spring框架、Struts2等,提供了简洁而灵活的方式来访问和操作对象的属性。...
OGNL特有的对象索引属性(Object Indexed Properties) 调用方法 变量引用 带括号的表达式 子表达式(Subexpressions)链 构造集合(Collection) 列表(Lists) 数组 映射表(Maps) 对集合的投影(Project) 在集合...
OGNL,全称为Object-Graph Navigation Language,是一种强大的、动态的、类型安全的表达式语言,允许程序开发者通过简单的字符串表达式来访问和操作复杂的对象图。它的主要功能包括访问对象的属性、调用方法、执行...
例如,`user.addresses[0].city`可以获取用户地址列表的第一个地址的所在城市,而`user.getAge() > 18`则是一个条件表达式,判断用户是否成年。 在实际开发中,开发者可以通过OGNL表达式轻松地实现数据绑定、模板...
OGNL还支持数组、集合、映射的访问,以及方法调用,如`list[0]`、`map['key']`或`object.method()`。 **2. Struts2与OGNL的结合** 在Struts2中,OGNL作为默认的表示层语言,用于在Action和视图之间传递数据。Action...
9. **表达式树**:OGNL将表达式转换为一个抽象语法树(AST),这使得解析和优化表达式成为可能,同时也支持更复杂的功能。 在实际开发中,了解并熟练掌握OGNL的使用,可以帮助你更好地构建动态和响应式的应用程序。...
camel-ognl-1.6.4.jar, camel-ognl-2.8.1.jar, com.springsource.org.ognl-2.6.9.jar, com.springsource.org.ognl-sources-2.6.9.jar, ognl-2.5.1.jar, ognl-2.6.11.jar, ognl-2.6.3.jar, ognl-2.6.5.jar, ognl-...
2. **类型转换**:OGNL可以自动进行类型转换,例如,将字符串转换为整数,如`"123"`会被自动转换为`123`。 3. **列表和数组操作**:可以通过索引和切片操作来处理列表和数组,如`list[1..3]`会返回列表的第二个到第...
1. **OGNL基本语法**:介绍OGNL的基本表达式,包括访问对象属性(如`obj.property`),调用方法(如`obj.method()`),以及数组和集合的操作(如`array[0]`,`collection.size()`)。 2. **OGNL的上下文(Context)...
### OGNL表达式的理解和应用 #### 一、OGNL简介与基本概念 OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置Java对象的属性。它是Struts2框架中的默认表达式语言,同时也被广泛...
压缩包中的"ognl"可能是OGNL的源码文件,这为深入理解其内部工作原理提供了机会。通过阅读源码,开发者可以学习OGNL的解析器如何将字符串表达式转化为可执行的指令,以及如何处理各种类型的对象和数据结构。 **开发...
2. 集合操作:OGNL支持对数组、列表、集合等进行迭代,如`#{list[0]}`访问列表的第一个元素。 3. 方法调用:`#object.method()`,调用对象的方法。 4. 运算符支持:OGNL支持算术运算符(+,-,*,/,%)、比较运算符...
OGNL可以自动进行类型转换,但也可以通过`#type`来显式指定类型,如`'123'.#int`将字符串转换为整数。 9. **OGNL的安全性**: 在Struts2中,不安全的OGNL表达式可能导致代码注入攻击,因此在生产环境中应严格控制...
3. **类型安全**:OGNL支持自动类型转换,能够根据目标对象的类型自动进行数据转换,例如将字符串转换为整数。 4. **方法调用**:OGNL不仅支持属性访问,还能直接调用对象的方法,包括静态方法。 5. **集合操作**...
5. **列表和集合操作**:OGNL可以直接操作数组、列表和集合,支持索引访问、过滤、映射和减少等操作。 **解决NoClassDefFoundError的步骤** 1. **检查类路径**:确保ognl.jar已添加到项目的类路径中,这可以通过...
3. `<s:if>` 和 `<s:else>`:这些标签用于条件判断,可以基于OGNL表达式的真假来决定是否执行特定的代码块。 4. `<s:iterator>`:用于迭代集合,例如数组、列表或Map。在遍历过程中,可以用OGNL表达式访问元素。 5...
OGNL 支持丰富的表达式类型,如字段访问(`.field`),方法调用(`method()`),数组和集合访问(`[index]`),三元运算符(`? :`),条件运算符(`&&`, `||`),算术运算符,以及自定义方法和函数的调用等。源码中...
OGNL提供了强制将对象转换为特定类型的功能,这在处理不同类型的对象时非常有用。主要包含以下几种情况: - **布尔值解释**:将对象解释为布尔值。 - **数字解释**:将对象解释为数字。 - **整数解释**:将对象解释...