使用getter和setter的javajsp

使用getter和setter的javajsp,java,jsp,Java,Jsp,我正在构建java应用程序,我有.jsp文件,其中有以下代码: <c:forEach items="${months}" var="month"> <c:choose> <c:when test="${month.getValue() == currentMonth}"> <option valu

我正在构建java应用程序,我有.jsp文件,其中有以下代码:

        <c:forEach items="${months}" var="month">
                    <c:choose>
                        <c:when test="${month.getValue() == currentMonth}">
                            <option value="${month.getValue()}" selected>${month.getValue()}</option>
                        </c:when>
                        <c:otherwise>
                            <option value="${month.getValue()}">${month.getValue()}</option>
                        </c:otherwise>
                    </c:choose>
                </c:forEach>
下面是一个方法,从中调用:

        private Map<Integer, String> getMonths() {
    Map<Integer, String> months = new LinkedHashMap<Integer, String>();
    months.put(1, "January");
    months.put(2, "February");
    months.put(3, "March");
    months.put(4, "April");
    months.put(5, "May");
    months.put(6, "June");
    months.put(7, "July");
    months.put(8, "August");
    months.put(9, "September");
    months.put(10, "October");
    months.put(11, "November");
    months.put(12, "December");
    return months;
}
你能告诉我如何修理它,这样它才能正常工作吗

编辑

还有一个问题。在.jsp中,我有一行:

<td>${currentUser.setValue(d.key) } ${d.value }</td>    
方法setValue来自我的User.java类。是否可以直接从.jsp文件中设置值

<c:forEach items="${months}" var="month">
您的JSTL应该如下所示:

<c:forEach items="${months}" var="month">
  <c:choose>
    <c:when test="${month.value == currentMonth}">
        <option value="${month.value}" selected>${month.value}</option>
    </c:when>
    <c:otherwise>
        <option value="${month.value}">${month.value}</option>
    </c:otherwise>
  </c:choose>
</c:forEach>
您的JSTL应该如下所示:

<c:forEach items="${months}" var="month">
  <c:choose>
    <c:when test="${month.value == currentMonth}">
        <option value="${month.value}" selected>${month.value}</option>
    </c:when>
    <c:otherwise>
        <option value="${month.value}">${month.value}</option>
    </c:otherwise>
  </c:choose>
</c:forEach>

在迭代和访问映射时,您需要这样做

<c:forEach var="month" items="${months}">
     ${month.value}
</c:forEach>

在迭代和访问映射时,您需要这样做

<c:forEach var="month" items="${months}">
     ${month.value}
</c:forEach>

当您使用在映射上迭代时,迭代中的每个项都是Map.Entry的一个实例

<c:forEach items="${months}" var="month"">
  Key is ${month.key}
  Value is ${month.value}
</c:forEach>

当您使用在映射上迭代时,迭代中的每个项都是Map.Entry的一个实例

<c:forEach items="${months}" var="month"">
  Key is ${month.key}
  Value is ${month.value}
</c:forEach>

我正试图了解jsf,所以我只是好奇您的问题,特别是为什么错误消息会抱怨名称空间。如果您能告诉我们/WEB-INF/views/attention.jsp241,7中的代码片段是什么,也许会有所帮助。这是这样一行:我真的不明白发生了什么${months}应返回am map,作为map.Entry的序列。每个${month}都应该是一个Map.Entry、一个key、value对,您应该能够从中提取${month.value}的值,正如给出的3个答案所告诉您的那样。我真正不明白的是,为什么你的${month.getValue}不工作,为什么会弹出关于名称空间的消息。为了完整起见,你能告诉我们你正在使用的jsf版本吗?我正在尝试了解jsf,所以我只是好奇你的问题,特别是为什么错误消息会抱怨名称空间。如果您能告诉我们/WEB-INF/views/attention.jsp241,7中的代码片段是什么,也许会有所帮助。这是这样一行:我真的不明白发生了什么${months}应返回am map,作为map.Entry的序列。每个${month}都应该是一个Map.Entry、一个key、value对,您应该能够从中提取${month.value}的值,正如给出的3个答案所告诉您的那样。我真正不明白的是,为什么${month.getValue}不起作用,为什么会弹出关于名称空间的消息。为了完整起见,您能告诉我们您使用的jsf版本吗?请帮助我,${month.getValue}为什么不起作用?month是一个映射条目。Map没有名为getValue的方法。如果您想获取映射的值,请使用${month.value},这将返回您,例如,month-janur.map.Entry well确实有一个方法getValue,请检查,否则${month.value}调用bean方法getValue,将无法工作。或者我真的对这些概念有很好的误解吗?Map有一个方法get和accept键作为参数,而不是getValue。请参阅Just for Completion,@帕尔帕蒂姆评论中的一个片段,给出了关键提示:错误消息表明EL将测试解释为一个函数,它需要一个名称空间,比如使用JSTL函数fn:replace take from请帮助我,${month.getValue}为什么不起作用?month是一个映射条目。Map没有名为getValue的方法。如果您想获取映射的值,请使用${month.value},这将返回您,例如,month-janur.map.Entry well确实有一个方法getValue,请检查,否则${month.value}调用bean方法getValue,将无法工作。或者我真的对这些概念有很好的误解吗?Map有一个方法get和accept键作为参数,而不是getValue。请参阅Just for Completion,这是@帕尔帕蒂姆评论中的一个片段,给出了关键提示:错误消息表明EL将测试解释为一个函数,它需要一个名称空间,就像使用JSTL函数fn:replace from一样
<c:forEach items="${months}" var="month"">
  Key is ${month.key}
  Value is ${month.value}
</c:forEach>