Java 统一表达式语言,方法调用列表参数
我有下一个方法:Java 统一表达式语言,方法调用列表参数,java,collections,el,Java,Collections,El,我有下一个方法: public int countEvents(List<EventTypeEnum> eventTypes) 这两种崩溃如果值是固定的,您可以执行以下操作: public int countEvents(List<EventTypeEnum> eventTypes) { ... } public int countAlerts() { return countEvents(Arrays.asList(EventTypeEnum.ALERT))
public int countEvents(List<EventTypeEnum> eventTypes)
这两种崩溃如果值是固定的,您可以执行以下操作:
public int countEvents(List<EventTypeEnum> eventTypes) { ... }
public int countAlerts() {
return countEvents(Arrays.asList(EventTypeEnum.ALERT));
}
${countAlerts()}
public int countEvents(列出事件类型){…}
公共int countAlerts(){
返回countEvents(Arrays.asList(EventTypeEnum.ALERT));
}
${countAlerts()}
这通常是最简单、最清晰的解决方案。枚举可以在jstl中作为字符串处理。但是没有直接的方法可以在jstl中创建列表。您需要在范围中有一个事件类型列表,比如说
${eventTypes}
,这是一个列表
,然后您可以直接在bean中使用类似${bean.countEvents(eventTypes)}
的方法
然而,根据您的代码,我认为您需要动态地创建它。在这种情况下,您将不得不依赖标准jsp。假设你有一个枚举
public enum EventTypeEnum {
ALERT, ONCLICK, ONBLUR
}
还有一个pojo,它的计数方法如下
import java.util.List;
public class CountBean {
public int countEvents(List<EventTypeEnum> eventTypes){
return eventTypes.size();
}
}
这样行得通。如果您不想使用
方法,可以使用MicroNova YUZU标签。它是一个开源的基于EL的JSP标记库,旨在扩充JSTL。更多详情请访问
如果您不想创建bean实例来调用此方法,并且希望将其作为静态方法使用,则可以创建自定义jstl方法,如前所述
希望这有帮助。我需要使用集合元素,而不仅仅是集合大小well,我在Activiti任务中使用表达式语言,并且只有EL可用
import java.util.List;
public class CountBean {
public int countEvents(List<EventTypeEnum> eventTypes){
return eventTypes.size();
}
}
<jsp:useBean id="events" class="java.util.ArrayList">
<%
events.add("ALERT");
events.add("ONCLICK");
%>
</jsp:useBean>
Length : <c:out value="${myBean.countEvents(events)}"/>