当前位置: 首页 > 知识库问答 >
问题:

在JSP中,字段路径使用HashMap(SpringMVC形式)

汤修贤
2023-03-14
HashMap<String,ArrayList<String>> map = new HashMap<String,ArrayList<String>>();

对于字段绑定,我需要指向JSP中特定键的ArrayList的第I项。我怎么做?这种双括号表示法行得通吗?假设'key'和'index'是JSP中已知的JSTL变量。

<form:checkbox path="map[${key}][${index}]" />
map['testkey'][4]
map.get("testkey").get(4);
org.springframework.beans.NullValueInNestedPathException: Invalid property 'map[TestKey][0]' 

共有1个答案

公良英资
2023-03-14

通过遵循上面链接中的LazyList/LazySet实现,在Spring MVC中绑定列表映射,我解决了这个问题

从他们的例子来看,

public class PrsData {

  private Map<String, List<PrsCDData>> prsCDData;

  public PrsData() {
      this.prsCDData = MapUtils.lazyMap(new HashMap<String,List<Object>>(), new Factory() {

          public Object create() {
              return LazyList.decorate(new ArrayList<PrsCDData>(), 
                             FactoryUtils.instantiateFactory(PrsCDData.class));
          }

      });
  }

}

一旦我有了映射到JSP路径的数据结构,字段绑定就神奇地开始工作,然后我就可以在JSP中创建路径,例如map[“key”][index]

正如他们所回答的,SpringMVC自动转换简单列表并映射到惰性集合,但当集合是子对象时不这样做。

 类似资料:
  • 我正在使用Spring形式。我只需要得到Staemap作为响应,但我得到的是整个jsp页面作为响应。

  • 我正在尝试将一个jsp表单放入fancybox,我的站点功能正常,所以我知道我的大部分配置都是正确的。我还做了一个图像的样例测试,它工作得很好,但是对于一个表单,我有问题。下面是代码:

  • 在标记的src中传递的图像路径有一些问题。 在我的数据库中,我有用户图像的Linux绝对路径。我得到这个值并放入“src”属性中。 我有一个路径,例如: null 我需要知道的是我要做什么? 我必须改变Jetty的配置吗?我必须用Java运行一些代码吗? 通过谷歌搜索,我变得更加困惑。我想要个解释。 谢谢你,巴卢斯!豪豪乌豪阿

  • 我如何设置IntelliJ在哪里查找JSP中引用的文件?如果我有 它无法解析目录foo。 看起来像是设置 找不到web目录

  • 我在开发脚本中设置了一个配置路径,但我不能用JEST做同样的事情。 预期的行为:我只想使用不同的MONGODB_URL进行JEST测试。

  • 选择路径、线段和锚点 在改变路径形状或编辑路径之前,必须选择路径的锚点和/或线段。 选择锚点 请执行下列任一操作: 如果能够看见这些点,则可以使用“直接选择”工具 单击它们以进行选择。按住 Shift 键并单击可选择多个锚点。 选择直接选择工具并在锚点周围拖动边界。按住 Shift 键并在其他锚点周围拖移以选择它们。 您可以从已选或未选路径中选择锚点。将直接选择工具移动到锚点上方,直到指针以放大状