struts2如果测试arraylist中的属性值

时间:2012-12-22 13:02:28

标签: java struts2

Class CategoryAction:

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 
}

在我的jsp页面中,我想检查当前类别。

在JSP页面中调用GAction之后,我输入了以下代码但是如果部分没有执行:

<s:iterator var="cat" value="catList">
  <s:if test="%{#category.equealIgenoreCase(#catName)}">
    if part       
  </s:if>
  <s:else>
    else part  
  </s:else>

2 个答案:

答案 0 :(得分:1)

类别不应该是一个行动;一个Action应该处理表示层,而Category是一个包含数据的简单POJO。

equealIgenoreCase有两个语法错误......

修改如下:

对象类别

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 

}

JSP

<s:iterator value="catList" var="cat">
 <s:if test="category.equalsIgnoreCase(catName)">
       if part       
 </s:if>
 <s:else>
       else part  
</s:else>

答案 1 :(得分:0)

@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>

%是访问存储在Value-stack

中的值的方法