青丝白雪 2012-09-03 03:53
浏览 274
已采纳

s:propery标签中根据key取map值的时候会自动加1,为什么?

今天要做一map的平行遍历,就是一个map(A)中存了另一个map(B)的key,然后就发现,在遍历后,存值的(B)莫其妙变大了,果断写了个小页面做了下测试代码如下:

  <tr>
        <td style="width:100px;">遍历前</td>
        <td style="width:100px;"><s:property value="markingStatistic.taskList.size()"/></td>
    </tr>
    <tr>
        <td style="width:100px;">遍历</td>
        <td style="width:100px;"><s:property value="markingStatistic.taskList['adfasd']"/></td>
    </tr>
    <tr>
        <td style="width:100px;">遍历后</td>
        <td style="width:100px;"><s:property value="markingStatistic.taskList.size()"/></td>
    </tr>

 这是java类:

public class MarkingStatistic {
    private List<String> examinationQuestionId = new ArrayList<String>();//试题ID列表
    private Map<String, MarkingStatisticPerson> taskList = new HashMap<String,MarkingStatisticPerson>();//每个人的详细情况
    
    
    public List<String> getExaminationQuestionId() {
        return examinationQuestionId;
    }
    public void setExaminationQuestionId(List<String> examinationQuestionId) {
        this.examinationQuestionId = examinationQuestionId;
    }
    public Map<String, MarkingStatisticPerson> getTaskList() {
        return taskList;
    }
    public void setTaskList(Map<String, MarkingStatisticPerson> taskList) {
        this.taskList = taskList;
    }
    
}

这是结果:

运行结果

分析后,发现,只要是那个key在原来的里面不存在的,都会自动加1,请问这是为什么? 

  • 写回答

2条回答 默认 最新

  • jinnianshilongnian 2012-09-03 06:24
    关注

    1、你用的struts2版本,那段代码你确定没有删减?
    2、按照正常逻辑是没有问题;
    3、能否贴出比较完整的代码,从你现在的代码看不出问题;

    4、如果代码就是这样 可能taskList 的数据结构Map 实现有问题,你看一下Map实现是什么?

    5、比如你的代码中是否有, "ognl表达式=null" 判断是null的代码写错了,这样会把null赋值;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题