颜色:
          <select name="selectColor">
           <option value="red">红色</option>
           <option value="blue">蓝色</option>
           <option value="green">绿色</option>
           <option value="yellow">黄色</option>
           <option value="black" selected>黑色</option>
           <option value="purple">紫色</option>
          </select>
      </form>
<%   
      if(request.getMethod().equals("post")){
       String chatNN=request.getParameter("selectColor");
       System.out.println(chatNN);
      }
  %> 输出为NULL为什么啊???

解决方案 »

  1.   

    们知道,在传文件时,form的enctype="multipart/form-data"属性是必须的,这样会把form的各个属性以二进制的方式传给action,这样也就导致如果我们在form里还有其他的field的话,request.getparameter都得不到,也就是值为null,因为现在action得到的不是纯文本了...
        到现在为止,我一共发现了四种解决思路,现一一阐述如下。    一,用其他的一些上传组件。
        这种方法是最常用的,百度/google出来的全是这样的方法,主要思路就是用一些功能更好的第三方组件替换,最出名的就是apache的上传组件,地址:http://jakarta.apache.org/commons/fileupload/。在此就不赘述了,网络上很多。    二,通过解析的方式将那些传递的属性解析出来。
        我目前通过百度/google还没找出哪里有给出这种解决方案,比较奇怪...主要思路就是写个handler将byte的字节流解析出来,从而得到原始的值。
        利用ServletInputStream in = request.getInputStream()得到reques传入的字节流,request.getContentLength()得到字节流的长度,这两个是最关键的,然后利用byte[] line  = in.readLine() 就可以一行一行的读取字节流,再转化成String类型输出观察下格式,就可以很容易的提取到其中的参数了。    三,通过多个form实现,最笨的方法。
        在页面加上多个form,其他的一些按钮都独立成其他form,这样就可以方便的控制了。不过这样有时会导致页面不整齐的问题,我碰到的就是这种情况,只好在上传form里放上多个filed...    四,通过更改form的属性来实现,这是我认为最简单好用的一种。
        目前通过百度/google还没找出哪里有给出这种解决方案,思路比较讨巧,不过很省力很实用。极力推荐!
        我们在一个form放置了上传文件功能的同时,比较常见的就是放两个“上传”“取消”按钮,然后根据用户点击作出不同响应。因为上传的form一定要有enctype="multipart/form-data"属性,因为两个按钮都是submit类型,而getParameter又是null,所以没法做出判断用户是点击了哪个按钮。一开始我用的是方法三,但是导致页面不整齐的问题...只好又改回一个form。
        我的解决方案是:在cancel中加入onclick事件,在onclick中将enctype改成"application/x-www-form-urlencoded"就是标准的名称/值对的格式,你甚至可以将action更改掉,这样你在action目标中就可以得到值,从而做出判断了。这种方法相比较网络上普遍使用的方法一会省时省力很多。而且也更加灵活。    最后,关于form的一些属性,大家可以参考w3schools:http://www.w3schools.com/htmldom/dom_obj_form.asp 
    ------------------------------------------------------------------------------------------------
    http://www.jiemengwu.com/ 解梦屋 http://www.phpzy.com/php/ 绿色php资源http://www.shopfw.com网店服务
      

  2.   

    这个应该用 ajax 来传数据
      

  3.   

    select是要放到form表单里,提交后到另一个页面。才能用request.getParameter("selname")来得到值的。
      

  4.   

    你的<form method="post">上的method属性设置了post吗?
      

  5.   

    在<form method="post" action="#"></form>中间放置你的select标签,并且执行提交后,就可以在你的代码中取到值了
      

  6.   

    onchange事件调用的方法里面进行提交如<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <script type="text/javascript">
         function submitForm(){
         document.forms[0].submit();
         }
        </script>
      </head>
      
      <body>
       <form action="" method="post" >
       <select name="selectColor">
      <option value="red">红色</option>
      <option value="blue">蓝色</option>
      <option value="green">绿色</option>
      <option value="yellow">黄色</option>
      <option value="black" selected>黑色</option>
      <option value="purple">紫色</option>
      </select>
      </form>
    <%   
      if(request.getMethod().equals("post")){
      String chatNN=request.getParameter("selectColor");
      System.out.println(chatNN);
      }
      %> 
       </form>
      </body>
    </html>
      

  7.   

    补充下 <select name="selectColor" onchange="submitForm()">
      

  8.   

    form  里的参数  也贴出来啊
    别光贴结束表情</form>