Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 关于JSTL的概念_Java_Jsp_Jstl_El - Fatal编程技术网

Java 关于JSTL的概念

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}

我想了解当我使用JSTL访问地图时会发生什么 在@blausC的回答中,他解释了发生了什么,但当我尝试使用以下代码时

     <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应答时起作用,但我不明白为什么?