我是Java EE的初学者,当我尝试在JSP和Servlet之间传输对象时,我使用了一个会话。 对于家庭作业,我必须创建一个电子商务网站。 我只是在我的jsp中有这个:
HttpSession sess = request.getSession();
Panier pan = new Panier();
sess.setAttribute("panier", pan);
sess.setAttribute("produit", produits.get(0));
produits是“produit”对象的arraylist。
在我的Servlet中:
HttpSession sess = request.getSession();
Panier pan = (Panier) sess.getAttribute("panier");
Produit p1 = (Produit) sess.getAttribute("prod");
当我在这里时,所有作品都会导致我可以显示对象pan或p1的良好属性。但是,当我使用我的方法“ajouterProduit”(英文addProduct)时,会出现一个野蛮的空指针异常。
我的班级“产品”:
public class Produit implements java.io.Serializable{
private String nom;
private int prix;
public Produit(String name, int price){
this.nom = name;
this.prix = price;
}
public void setNom(String n){
this.nom = n;
}
public void setPrix(int p){
this.prix = p;
}
public String getNom(){
return this.nom;
}
public int getPrix(){
return this.prix;
}
}
我班“Panier”(英文篮子):
public class Panier implements Serializable{
private List<Produit> panier;
private static int montant = 0;
public Panier(){
panier = new ArrayList<>();
}
public void ajouterProduit(Produit p1){
panier.add(p1);
montant = montant + p1.getPrix();
}
public void ajouterProduit(Produit p1, Produit p2){
panier.add(p1);
montant = montant + p1.getPrix();
panier.add(p2);
montant = montant + p2.getPrix();
}
public void ajouterProduit(Produit p1, Produit p2,Produit p3){
panier.add(p1);
montant = montant + p1.getPrix();
panier.add(p2);
montant = montant + p2.getPrix();
panier.add(p3);
montant = montant + p3.getPrix();
}
public List<Produit> getPanier(){
return panier;
}
public int getMontantTotal(){
return montant;
}
}
提前感谢您的帮助! ;)
答案 0 :(得分:1)
您可以像这样添加“产品”:
sess.setAttribute("produit", produits.get(0));
但你可以这样检索它:
Produit p1 = (Produit) sess.getAttribute("prod");
"prod"
和"produit"
是2个不同的会话名称。您的“产品”不在"prod"
会话中。
Tu stock ton produit
dans la session "produit"
,mais tulerécupéreàpartird'une session“prod”,qui n'existe pas。
p1
是null
。