Java struts2如果测试arraylist中的属性值
类别作用:Java struts2如果测试arraylist中的属性值,java,struts2,Java,Struts2,类别作用: public class CategoryAction extends ActionSupport { private String catName; private String dispName; // getter and setter } 类间隙: public class GAction extends ActionSupport { private String category; // contains a private A
public class CategoryAction extends ActionSupport {
private String catName;
private String dispName;
// getter and setter
}
类间隙:
public class GAction extends ActionSupport {
private String category; // contains a
private ArrayList<CategoryAction> catList; // contains a b c d e
//getter and setter
}
public class操作扩展了ActionSupport{
私有字符串类别;//包含
私有ArrayList catList;//包含一个b c d e
//接二连三
}
在我的jsp页面中,我想检查当前类别
在JSP页面中调用GAAction后,我放入以下代码,但如果该部分未执行:
<s:iterator var="cat" value="catList">
<s:if test="%{#category.equealIgenoreCase(#catName)}">
if part
</s:if>
<s:else>
else part
</s:else>
如果部分
其他部分
类别不应是动作;一个操作应该处理表示层,而Category是一个包含数据的简单POJO
EqualIgenorecase有两个语法错误
修改如下:
对象类别
public class Category {
private String catName;
private String dispName;
/getter and setter
}
动作类
public class GAction extends ActionSupport {
private String category; //contains a
private ArrayList<Category> catList;//contains a b c d e
//getter and setter
}
public class操作扩展了ActionSupport{
私有字符串类别;//包含
私有ArrayList catList;//包含一个b c d e
//接二连三
}
JSP
如果部分
其他部分
@Andrea Ligios是正确的,您应该更改模式,他的方法也正确
<s:iterator var="catVar" value="%{catlist}">
<s:if test ="%{category.equalsIgnoreCase(#catVar.categoryName)}">
if condition <br/>
</s:if>
<s:else>
else condition <br/>
</s:else>
</s:iterator>
如果条件
其他条件
%是访问存储在值堆栈中的值的方法谢谢回复,但我不知道何时放置%{}以及何时不在s中:如果“%%{}”强制在struts2标记中对ognl表达式求值,则通常不会进行求值。由于test属性需要一个表达式,因此在test属性中使用“%{}”是多余的,但是这样做并没有什么坏处,有些人建议它具有可读性,我个人保留它以覆盖默认值,否则会分散注意力。
<s:iterator var="catVar" value="%{catlist}">
<s:if test ="%{category.equalsIgnoreCase(#catVar.categoryName)}">
if condition <br/>
</s:if>
<s:else>
else condition <br/>
</s:else>
</s:iterator>