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:未能分析表达式[${item.class.name==&';List';}]_Java_Json_Jsp_Jstl_El - Fatal编程技术网

Java jstl:未能分析表达式[${item.class.name==&';List';}]

Java jstl:未能分析表达式[${item.class.name==&';List';}],java,json,jsp,jstl,el,Java,Json,Jsp,Jstl,El,下面的jstl代码应基于此控制器方法解析json文件: 控制器 @RequestMapping(value="listagem.json", method=RequestMethod.GET) @PreAuthorize("hasPermission(#user, 'listagem_'+#this.this.name)") public ModelAndView listagem_json(@RequestParam("pagina") String pagina, @RequestParam

下面的jstl代码应基于此控制器方法解析json文件:

控制器

@RequestMapping(value="listagem.json", method=RequestMethod.GET)
@PreAuthorize("hasPermission(#user, 'listagem_'+#this.this.name)")
public ModelAndView listagem_json(@RequestParam("pagina") String pagina, @RequestParam("items") String items, @RequestParam("ordem") String ordem) {
    ModelAndView mav = new ModelAndView();

    mav.setViewName("listagem");        
    mav.addObject("lista", serv.listagem(pagina, items, ordem));
    mav.addObject("map", serv.getListaAtributos());

    return mav;
}
jstl代码

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="json" uri="http://www.atg.com/taglibs/json" %>
<json:object>
    <json:array name="item" var="item" items="${lista}">
          <json:object>
            <c:forEach var="attr" items="${map}">
                <c:choose>
                    <c:when test="${empty attr.value}">
                        <json:property name="${attr.key}" value="${item[attr.key]}"/>
                    </c:when>
                    <c:otherwise>
                        <c:choose>
                            <c:when test="${item.class.name == 'List'}">
                                <json:array name="${attr.key}" var="attr2" items="${item[attr.key]}">
                                    <json:object>
                                        <c:forEach var="attr3" items="${attr.value}">
                                            <json:property name="${attr3}" value="${attr2[attr3]}"/>
                                        </c:forEach>
                                    </json:object>
                                </json:array>
                            </c:when>
                            <c:otherwise>
                                <json:array name="${attr.key}">
                                    <json:object>
                                        <c:forEach var="attr2" items="${attr.value}">
                                            <c:set value="${attr.key}" var="object"/>
                                            <json:property name="${attr2}" value="${object}.${attr2}"/>
                                        </c:forEach>
                                    </json:object>
                                </json:array>
                            </c:otherwise>
                        </c:choose>
                    </c:otherwise>
                </c:choose>
            </c:forEach>
          </json:object>
    </json:array>
</json:object>

任何人都可以告诉我写这个表达式的正确方法是什么

${item.class.name=='List'}来实现预期的结果?

您可以使用以下两种方法之一:

${item.getClass().simpleName == "List"} 
${item['class'].simpleName == "List"}

有关更多详细信息,请参见此

您可以使用以下两种方法之一:

${item.getClass().simpleName == "List"} 
${item['class'].simpleName == "List"}
有关更多详细信息,请参见此

${item.class.simpleName==“List”}${item.class.simpleName==“List”}