2010-03-30 14 views
28

से सभी पैरामीटर प्राप्त करें मैं रूप में नामित किया गया टेक्स्ट फ़ील्ड में से n संख्या है "प्रश्न ....."। मैं जेएसपी पेज से एक्शन में "प्रश्न" से शुरू होने वाले सभी पैरामीटर कैसे प्राप्त कर सकता हूं?JSP पेज

उत्तर

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

अच्छा जवाब। एक टिप्पणी हालांकि, आपको इस तरह के मानचित्र को फिर से शुरू नहीं करना चाहिए, आपको \t \t \t \t के लिए कुछ उपयोग करना चाहिए (प्रविष्टि <स्ट्रिंग, स्ट्रिंग []> paramEntry: पैरामीटर .entrySet()) –

+0

दृष्टिकोण पर क्या लाभ होता है ऊपर? – Finbarr

+1

प्रदर्शन। पहले दृष्टिकोण में, आप कुंजी के माध्यम से पुनरावृत्ति करते हैं और प्रत्येक कुंजी के लिए एक लुकअप करते हैं। व्यवहार में, नहीं प्रदर्शन में एक बड़ा अंतर है, खासकर अनुरोध पैरामीटर जो एक छोटे से नक्शे है के लिए है। फिर भी, यदि आप कर सकते हैं तो लुकअप से बचने की अनुशंसा की जाती है। –

5

यह सभी पैरामीटर कि "प्रश्न" के साथ शुरू प्रिंट आउट करना चाहिए।

<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

हालांकि इस एक पुराने सवाल है, मैं आज कुछ इसी तरह करना था, लेकिन मैं 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

इसके अलावा आप fn: startWith() के बजाय $ {par.key.startsWith ('question')} का उपयोग कर सकते हैं। – Cherry

0

सबसे तेज़ तरीका होना चाहिए:

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

ध्यान दें कि आप ऐसा नहीं कर सकते:

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

कारणों के लिए 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

कृपया अपना कोड बताएं –

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 
संबंधित मुद्दे