2010-03-30 31 views

Respuesta

62
<%@ page import = "java.util.Map" %> 
Map<String, String[]> parameters = request.getParameterMap(); 
for(String parameter : parameters.keySet()) { 
    if(parameter.toLowerCase().startsWith("question")) { 
     String[] values = parameters.get(parameter); 
     //your code here 
    } 
} 
+3

buena respuesta. Una observación, sin embargo, no se debe recorrer un mapa como este, usted debe usar algo como \t \t \t \t para (Entrada paramEntry: parameters.entrySet()) –

+0

Qué ventaja tiene que dar sobre el enfoque ¿encima? – Finbarr

+1

Rendimiento. En el primer enfoque, itera a través de las claves y realiza una búsqueda de cada tecla. En la práctica, no hay una gran diferencia en el rendimiento, especialmente para los parámetros de solicitud, que es un pequeño mapa. Sin embargo, se recomienda evitar la búsqueda si puedes. –

5

Esto debería imprimir todos los Parámetros que comienzan con "Pregunta".

<html><body> 
<%@ page import = "java.util.*" %> 
<b>Parameters:</b><br> 
<% 
    Enumeration parameterList = request.getParameterNames(); 
    while(parameterList.hasMoreElements()) 
    { 
    String sName = parameterList.nextElement().toString(); 
    if(sName.toLowerCase.startsWith("question")){ 
     String[] sMultiple = request.getParameterValues(sName); 
     if(1 >= sMultiple.length) 
     // parameter has a single value. print it. 
     out.println(sName + " = " + request.getParameter(sName) + "<br>"); 
     else 
     for(int i=0; i<sMultiple.length; i++) 
      // if a paramater contains multiple values, print all of them 
      out.println(sName + "[" + i + "] = " + sMultiple[i] + "<br>"); 
    } 
    } 
%> 
</body></html> 
28

A pesar de que esta es una cuestión de edad, que tenía que hacer algo similar en la actualidad pero prefiero JSTL:

<c:forEach var="par" items="${paramValues}"> 
    <c:if test="${fn:startsWith(par.key, 'question')}"> 
${par.key} = ${par.value[0]}; //whatever 
    </c:if> 
</c:forEach> 
+0

También puede usar $ {par.key.startsWith ('question')} en lugar de fn: startsWith(). – Cherry

0

La forma más rápida debe ser:

<%@ page import="java.util.Map" %> 
Map<String, String[]> parameters = request.getParameterMap(); 
for (Map.Entry<String, String[]> entry : parameters.entrySet()) { 
    if (entry.getKey().startsWith("question")) { 
     String[] values = entry.getValue(); 
     // etc. 

Tenga en cuenta que no puede do:

for (Map.Entry<String, String[]> entry : 
    request.getParameterMap().entrySet()) { // WRONG! 

por las razones explicadas here.

0
HTML or Jsp Page   
<input type="text" name="1UserName"> 
<input type="text" name="2Password"> 
<Input type="text" name="3MobileNo"> 
<input type="text" name="4country"> 
and so on... 
in java Code 

SortedSet ss = new TreeSet(); 
Enumeration<String> enm=request.getParameterNames(); 
while(enm.hasMoreElements()) 
{ 
    String pname = enm.nextElement(); 
    ss.add(pname); 
} 
Iterator i=ss.iterator(); 
while(i.hasNext()) 
{ 
    String param=(String)i.next(); 
    String value=request.getParameter(param); 
} 
+0

Por favor explique su código –

0
localhost:8080/esccapp/tst/submit.jsp?key=datr&key2=datr2&key3=datr3 

    <%@page import="java.util.Enumeration"%> 

    <% 
    Enumeration in = request.getParameterNames(); 
    while(in.hasMoreElements()) { 
    String paramName = in.nextElement().toString(); 
    out.println(paramName + " = " + request.getParameter(paramName)+"<br>"); 
    } 
    %> 

    key = datr 
    key2 = datr2 
    key3 = datr3 
Cuestiones relacionadas