在jsp页面之间传递参数,第一个页面传过去的假如是:
http://localhost:8080/index.action?aaa=111&bbb=222&ccc=333&ddd=444
在第二个页面使用<c:out value="param"/>可以得到
{aaa=111, bbb=222, ccc=333, ddd=444}
我的问题是如何获取<c:out value="param"/>参数的大小,以及获取每个参数等号前面key以及后面value?因为页面上的参数个数不确定以及参数的名称不确定,所以想通过方法获取param参数个数以及每个参数的值【key和value】因为param是Map类,所以我使用<c:out value="param.size()"/>但是报错。
ERROR Message:The function size must be used with a prefix when a default namespace is not specified想请问一下大家有什么方法,谢谢。

解决方案 »

  1.   

    JSTL 里有一组fn(函数)标签 :JSTL 1.1 新增函数(functions)标签库,主要提供一些好用的字符串处理函数,例如: 
    fn:contains、fn:containsIgnoreCase、fn:endsWith、fn:indexOf、fn:join、fn:length、
    fn:replace、fn:split、fn:startsWith和 fn:substring 等等。 你使用c:out 标签  配合fn标签  就行了,其他的自己google下不废话了
     
      

  2.   

    <%
    Enumeration enum = request.getParameterNames();
    while(enum.hasMoreElements()){
      String key = (String)enum.nextElement();
      String[] paramValues = request.getParameterValues(key);
      for(int i=0;i < paramValues.length;i++){
          out.println(key + " : "  + paramValues[i]); 
      }
    }
    %>
      

  3.   

    ${param.aaa}长度要么用<%=%>算出来,要不就用struts或者别的标签... 
      

  4.   

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
    长度:${fn:length(param)}<br/>
    <c:forEach items="${param}" var="p">
        键: ${p.key} 值:${p.value}
    </c:forEach>
      

  5.   

    非常感谢,这种方法很好用。有一点就是在jdk 1.5之后enum为关键字,把enum改为其他的然后再引入<%@ page import="java.util.*"%>包,就可以实现要求了。谢谢believefym