Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java struts2如果测试arraylist中的属性值_Java_Struts2 - Fatal编程技术网

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>