点击add之后,返回的值确实null,很纳闷,求仙哥仙女们帮助程序如下
SelectGoods.javapackage shop;import java.util.Vector;import javax.servlet.http.HttpServletRequest;public class SelectGoods extends Object{
Vector cart=null;
String submit=null;
Goods goods=null;

public SelectGoods(){
cart=new Vector();
}
public void setGoods(Goods goods){
this.goods=goods;
}
public void setSubmit(String submit){
this.submit=submit;
}
public Vector getGoods(){
return cart;
}
public void addGoods(Goods goods){
cart.add(goods);
}
public void removeGoods(Goods goods){
cart.remove(goods);
}
public void goodsRequest(HttpServletRequest req){
if(submit!=null){
if(submit.equals("add")){
addGoods(goods);
}
else{
removeGoods(goods);
}
reset();
}       
}
public void reset(){
    submit=null;
goods=null;
}}
Test.jsp<%@ page language="java" pageEncoding="GB2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'ShowGoods.jsp' starting page</title>  </head>
  
  <body>
    This is my JSP page. <br>
      <hr>
     <form action="Test2.jsp" method="post">
     <select name='goods'>
     <option>B a</option>
     <option>C d</option>
     <option>E f</option>
     <option>G h</option>     
     </select>     <input type=submit name="submit" value="add">
     
      </form>
  </body>
</html>
Test2.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'Test2.jsp' starting page</title>
    
  </head>
  
  <body>
    This is my JSP page. <br>
    
       <% String submit=request.getParameter("submit"); 
    if(submit!=null){
    %>
    <hr>
    <h2 align="center">My cart</h2>
    <p>
    <jsp:useBean id="mycart" scope="session"
    class="shop.SelectGoods"/>
    
    <jsp:setProperty name="mycart" property="*"/>
    <% mycart.goodsRequest(request); 
    %>
    <table width="75%" align="center" border="1">
    <% Vector products=mycart.getGoods();
    for(int i=0;i<products.size();i++){
    
    %>
    <tr>
     <td align="center"><%= products.get(i) %></td>
   
     <td><a href="Test2.jsp?product=<%=products.get(i)%>&submit=remove">Remove</a></td>
    </tr>
    <% 
   }
    if(products.size()==0){
    %>   
    <tr><td>My cart is empty</td></tr>
    <% 
    } 
    %>
    </table>
    <% 
    } 
    %>
  </body>
</html>

解决方案 »

  1.   

    Test2.jsp怎么连到servlet的?
    真心没看懂
      

  2.   

    你的test.jsp 中   <form action="Test2.jsp" method="post">  在跳到test2.jsp 页面的时候参数没传过去吧
      

  3.   

    我刚学的,“<form action="Test2.jsp" method="post"> 在跳到test2.jsp 页面的时候参数没传过去”...那个参数没传过去....谢谢了
      

  4.   

    大哥你的SelectGoods 都没有用到。。
      

  5.   

    页面转发的话在test2页面直接有request.get()就能获取参数
      

  6.   

    必须为空,<option>里没设置value,肯定取不到name="goods"的值
    而且SelectGoods中的goods从来就没有被赋过值,只是开始时给了个空
    SelectGoods中的goods类型为Goods,option中取出来的是String类型,需要转换
      

  7.   


    你说的问题,我改了,怎么还是null...
      

  8.   

    SelectGoods.java
    package shop;import java.util.Vector;import javax.servlet.http.HttpServletRequest;public class SelectGoods extends Object{
    Vector cart=null;
    String submit=null;
    String goods=null;

    public SelectGoods(){
    cart=new Vector();
    }
    public void setGoods(String goods){
    this.goods=goods;
    }
    public void setSubmit(String submit){
    this.submit=submit;
    }
    // public Vector getGoods(){
    // return cart;
    // }

    public String[] getGoods(){
    String[] s=new String[cart.size()];
    cart.copyInto(s);
    return s;
    }
    public void addGoods(String goods){
    cart.add(goods);
    }
    public void removeGoods(String goods){
    cart.remove(goods);
    }
    public void goodsRequest(HttpServletRequest req){
    if(submit!=null){
    if(submit.equals("add")){
    addGoods(goods);
    }
    else{
    removeGoods(goods);
    }
    reset();
    }       
    }
    public void reset(){
        submit=null;
    goods=null;
    }}Test.jsp     <form action="Test2.jsp" method="post">
         <select name="goods">
         <option value="ba">B a</option>
         <option value="cd">C d</option>
         <option value="ef">E f</option>
         <option value="gh">G h</option>     
         </select>
         <input type=submit name="submit" value="add">     
          </form>Test2.jsp   <% String[] products=mycart.getGoods();
        for(int i=0;i<products.length;i++){
        
        %>
      

  9.   

    public void goodsRequest(HttpServletRequest req){
    if(submit!=null){
    setGoods(req.getParameter("goods"));
    if(submit.equals("add")){
    removeGoods(goods);
    }
    else{
    removeGoods(goods);
    }
    reset();
    }   
    }