有关request.atribute 和c标签

今天在项目中,从Action传到前台一个一个list,其实list是空的。

request.setAttribute("queryResultList", queryResultList);

 

 

在前台要进行下判断,来控制按钮的显示,开始的时候用的是

<%if(request.getAttribute("queryResultList")!=null){
<input type="button" value="确定">
}

 发现当List是null时候,按钮也是显示的。后来用了<c:if>才真正的屏蔽

 

<c:if test="${queryResultList}!=null">
<input type="button" value="确定">
</c:if>

 测试的时候发现request.getAttribute("queryResultList")显示到文本框中,即使是空值也是[],有值的时候就是[xx,xx,xx,xx,xx]

还是不太理解,抽时间好好研究下两者的机制。知道的大侠提示一下

判断空值时候可以这样用
[code="html"]



/c:if




/c:if
[/code]

这样不管queryResultList是null还是queryResultList.size() == 0都可以用上面的两个的任何一个判断
空值也是[],有值的时候就是[xx,xx,xx,xx,xx]
这个是jstl,表示集合的输出的一种方式吧,具体的话,可能你要看jstl的tag源码怎么写了。另外,如果这个集合不存在是什么都不输出的,如果是个空的List就输出[]

[code="java"]
<%
if(request.getAttribute("queryResultList")!=null){
%>


<%
}
%>
[/code]

这样写的吧