在EL JSP中构造Map

时间:2015-01-05 16:18:53

标签: java jsp el

我遇到了以下代码,看起来它正在构建一个地图,但我无法在任何地方找到引用。

actionParams="${ format.asMap( 'name', 'me-popover-'.concat( name ), 'position', 'triggerBottom' ) }"

我的用例非常相似,我需要在JSP中构建一个映射。我不想从java传递这些信息,因为我们决定将静态内容发送到JSP文件,而动态来自java以保持业务逻辑简单。

有没有办法在不使用scriptlet的情况下在JSP中创建地图?

1 个答案:

答案 0 :(得分:0)

使用以下方法创建一个类:

public Map<String, String> asMap(String... elements) {
    int n = elements.length;
    if (n % 2 != 0) {
        throw new IllegalStateException("Cannot handle an odd number of elements");
    }
    Map<String, String> map = new HashMap<String, String>();
    for (int i = 0; i < n; i = i + 2) {
        String key = elements[i];
        String value = elements[i + 1];
        map.put(key, value);
    }
    return map;
}

在JSP中,声明一个bean:

<jsp:useBean id="format" class="package.to.the.CreatedClass" />

然后您提供的代码应该有效。