2010-03-30 17 views

Odpowiedz

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

dobra odpowiedź. Jedna uwaga: nie powinieneś powtarzać mapy takiej jak ta, powinieneś użyć czegoś takiego jak \t \t \t \t dla (Wpis paramEntry: parameters.entrySet()) –

+0

Co daje przewagę nad podejściem powyżej? – Finbarr

+1

Wydajność. W pierwszym podejściu następuje iteracja za pomocą kluczy i wykonanie wyszukiwania dla każdego klucza. W praktyce nie ma dużej różnicy w wydajności, szczególnie w przypadku parametrów żądania, które są małą mapą. Niemniej jednak zaleca się, aby unikać wyszukiwania, jeśli możesz. –

5

Powinno to wydrukować wszystkie parametry zaczynające się od "Pytanie".

<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

Choć jest to stara sprawa, musiałem zrobić coś podobnego, ale dzisiaj wolę 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

Możesz także użyć $ {par.key.startsWith ("pytanie")} zamiast fn: startsWith(). – Cherry

0

Najszybciej powinno być:

<%@ 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. 

Zauważ, że nie może zrobić:

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

z powodów wyjaśnionych 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

Proszę wyjaśnij swój kod –

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 
Powiązane problemy