各位大哥,我在做JSP开发时遇到传参数问题,比如有两个select,第二个select的下拉选项需要第一个select的key值才能显示,我该怎么传这个key值呢?

解决方案 »

  1.   

    String value=request.getParamter("d");
    if(value)
    {
    ..
    }
    这样判断下。因该可以把
      

  2.   

    request不是用与两个页面跳转时用的吗? 这个问题是在同一个页面要实现传参 第二个SELECT的方法需要一个参数,这个参数是来自与第一个SELECT的键值,这同时页面无跳转
      

  3.   

    如果是用JSF开发的话,对于select有专门的监听器,你只需要些个监听函数就可以实现相应的功能。如:
    <h:selectOneMenu id="dept" value="#{TmbRecordSearchForm.fldDept_Id}" 
    styleClass="select_large" valueChangeListener="#{ManageCtrl.deptValueChange}" onchange="selChanged(this);">
    <f:selectItems value="#{TmbRecordSearchForm.deptNameList}"/>             </h:selectOneMenu>
    valueChangeListener这就是监听器,详细情况可以参考以下资料,如果要进一步探讨,可以加我 MSN:
    [email protected]
      

  4.   

    在同一个html内部,那么这些动作应该通过js来做。
    事实上,你提的问题是两个select联动的问题。csdn里有很多类似的帖子,找找吧。
      

  5.   

    给你帖一个select联动的程序,是我现在用的。
    <tr>
          <td align="left" class="formbg2">文章分类</td>
          <td class="formbg2">
    <select name="select2" id="select2" onChange="changeType()">
              <option value=0 selected>所有栏目</option>
    <%
    /**
     * 这段代码用来取出所有的品牌信息
    */
    Vector vInJsp = new Vector();
    connectToDatabase();
    Statement stmtArray = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    ResultSet rsArray = stmtArray.executeQuery("select id,classname,classlevel,classupid from web_class");
    while( rsArray.next() )
    {
    String[] item = new String[4];
    item[0] = rsArray.getString("id");
    item[1] = rsArray.getString("classname");
    item[2] = rsArray.getString("classupid");
    item[3] = rsArray.getString("classlevel");
    vInJsp.addElement( item );
    }
    rsArray.close();
    stmtArray.close();
    //----------- 到这里为止,读完了
    Statement stmtone = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    ResultSet rsone = stmtone.executeQuery("select * from web_class where classlevel=1");
    while( rsone.next() ) {
    int idone = rsone.getInt("id");
            String nameone = rsone.getString("classname");
            if( String.valueOf(idone).equals( request.getParameter("select2") ) )
            {
             out.println("<option value='" + idone + "' selected>" + nameone + "</option>");
            }
            else
            {
             out.println("<option value='" + idone + "'>" + nameone + "</option>");
            }
            }
            rsone.close();
            stmtone.close();
    %>
            </select>
             分 类:
            <select name="select3" id="select3">
              <option value=0 selected>所有分类</option>
    <%
    Statement stmttwo = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    ResultSet rstwo = stmttwo.executeQuery("select * from web_class where classlevel=2");
    while( rstwo.next() ) {
    int idtwo = rstwo.getInt("id");
            String nametwo = rstwo.getString("classname");
            out.println("<option value='" + idtwo + "'>" + nametwo + "</option>");
            }
            rstwo.close();
            stmttwo.close();
            disConnectToDatabase();
    %>
            </select>
          </td>
        </tr>
    <script>
    function CarStyleInfo()
    {
    this.Data = new Array(<%=vInJsp.size()%>);
    <% for( int i = 0; i < vInJsp.size(); i ++ ) {
    String item[] = (String[])vInJsp.elementAt(i);
    %>
    this.Data[<%=i%>] = new Array(3);
    this.Data[<%=i%>][0] = "<%=item[0]%>";
    this.Data[<%=i%>][1] = "<%=item[1]%>";
    this.Data[<%=i%>][2] = "<%=item[2]%>";
    this.Data[<%=i%>][3] = "<%=item[3]%>";
    <%
    }
    %>
    }function changeType()
    {
    var src = window.event.srcElement;
    var series = document.forms[0].select3; series.length = 0;
    var o1 = document.createElement("OPTION");
    o1.text = "所有分类";
    o1.value = "0";
    series.add( o1 ); var info = new CarStyleInfo(); if( src.selectedIndex == 0 )
    {
    for( var i = 0; i < info.Data.length; i ++ )
    {
    if( info.Data[i][3] == "2" )
    {
    var op = document.createElement("OPTION");
    op.text = info.Data[i][1];
    op.value = info.Data[i][0];
    series.add( op );
    }
    }
    }
    else
    {
    var selValue = src.value;
    for( var i = 0; i < info.Data.length; i ++ )
    {
    if( info.Data[i][2] == selValue )
    {
    var op = document.createElement("OPTION");
    op.text = info.Data[i][1];
    op.value = info.Data[i][0];
    series.add( op );
    }
    }
    }
    }
    </script>
    你看看吧,应该可以满足你的需求。