从JSP页面获取所有参数

Gna*_*air 32 parameters jsp

我有n个以"Question ....."形式命名的文本字段.如何从JSP页面获取以"问题"开头的所有参数到Action?

Fin*_*arr 70

<%@ 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
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 好答案.但是有一点,你不应该迭代这样的地图,你应该使用类似的东西(Entry <String,String []> paramEntry:parameters.entrySet()) (3认同)

Fil*_*ina 30

即使这是一个老问题,我今天也必须做类似的事情,但我更喜欢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>
Run Code Online (Sandbox Code Playgroud)


laj*_*tte 6

这应该打印出以"Question"开头的所有参数.

<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>
Run Code Online (Sandbox Code Playgroud)