Java 关于JSTL的概念
我想了解当我使用JSTL访问地图时会发生什么 在@blausC的回答中,他解释了发生了什么,但当我尝试使用以下代码时Java 关于JSTL的概念,java,jsp,jstl,el,Java,Jsp,Jstl,El,我想了解当我使用JSTL访问地图时会发生什么 在@blausC的回答中,他解释了发生了什么,但当我尝试使用以下代码时 <c:set var="resultMap" value="validationResults" scope="request"></c:set> <c:if test="${resultMap['userName'] != null}"> ${resultMap['userName'].details}
<c:set var="resultMap" value="validationResults" scope="request"></c:set>
<c:if test="${resultMap['userName'] != null}">
${resultMap['userName'].details}
</c:if>
地图的键应该是字符串,那么这个异常是什么呢,我尝试了上面问题中的例子和相同的异常,有人能告诉我哪里有误解吗
编辑:我在servlet中填充映射并将其发送到jsp
Map<String, ValidationResult> result = new HashMap<String, ValidationResult>();
aValidationResult = new ValidationResult();
check whether the field is valid or not if not fill the map
result.put("userName", aValidationResult);
result.put("group", aValidationResult);
当我进行服务器端验证时,映射已填充
提前准备好 这是因为String类没有一个名为getUserName()的方法。这是因为String类没有一个名为getUserName()的方法。
resultMap
是一个字符串,因为这一行
<c:set var="resultMap" value="validationResults" scope="request"></c:set>
您需要使用EL来指定值
<c:set var="resultMap" value="${validationResults}" scope="request"></c:set>
编辑:以下是工作代码
<c:set var="validationResults" value="<%= new java.util.HashMap() %>" />
<c:set target="${validationResults}" property="username" value="Hello World" />
<c:set var="resultMap" value="${validationResults}" />
<c:out value="${resultMap['username']}"></c:out>
resultMap
是一个字符串,因为这一行
<c:set var="resultMap" value="validationResults" scope="request"></c:set>
您需要使用EL来指定值
<c:set var="resultMap" value="${validationResults}" scope="request"></c:set>
编辑:以下是工作代码
<c:set var="validationResults" value="<%= new java.util.HashMap() %>" />
<c:set target="${validationResults}" property="username" value="Hello World" />
<c:set var="resultMap" value="${validationResults}" />
<c:out value="${resultMap['username']}"></c:out>
我怀疑这可能是原因,但我应该如何处理map,因为它的键是string??您如何填充resultMap?您是否调试过resultMap是java.util.map还是java.lang.string?请尝试使用${validationResults['userName'],因为正如gbakenet所说,您没有使用${}我怀疑这可能是原因,但我应该如何处理map,因为它的键是string??如何填充resultMap?您是否调试过resultMap是java.util.map还是java.lang.string?请尝试使用${validationResults['userName'],因为正如GBakenet所说,您没有使用${}当我将值设置为这个值=”时,它不起作用。”${validationResults}”,它在@Enriquw应答时起作用,但我不明白为什么?当我将值设置为这样的值时它不起作用:“${validationResults}”,它在@Enriquw应答时起作用,但我不明白为什么?