关于图书分类添加问题
//添加分类图书的servlet
package servlet;
import model.BookCatgory;
import model.LibserviceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;
@WebServlet("/catgory")
public class CatgoryServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String msg="";
LibserviceImpl lsi=new LibserviceImpl();
Long id=Long.valueOf(req.getParameter("id"));//id为长整型,需要做个转换
String catgoryName=req.getParameter("catgoryName");
String description=req.getParameter("description");
List<Map<Long, BookCatgory>> classBook= lsi.getAllBookCatgory();
//调用查询方法接受书籍分类的集合来查看是否已经重复
if(classBook.isEmpty()){
lsi.addBookCatgory(id,catgoryName,description);
msg="添加成功";
}else
{
boolean flag=false;
for(Map<Long, BookCatgory> map:classBook){
for(Map.Entry entry:map.entrySet()){
System.out.print(entry.getValue());
if(entry.getKey().equals(id)||entry.getValue()==(catgoryName)){
flag=true;
break;
}
}
}
if(flag){
msg="已经存在该类别";
}
else {
lsi.addBookCatgory(id,catgoryName,description);
msg="添加成功";
}
}
req.setAttribute("msg",msg);
req.getRequestDispatcher("/catgory.jsp").forward(req,resp);
}
}
//图书分类的类
package model;
import java.security.PublicKey;
public class BookCatgory {
public long id;
public String catgotyName;
public String description;
public BookCatgory() {
}
public BookCatgory(long id, String catgotyName, String description) {
this.setId(id);
this.setCatgotyName(catgotyName);
this.setDescription(description);
}
public long getId() {
return id;
}
public String getCatgotyName() {
return catgotyName;
}
public String getDescription() {
return description;
}
public void setId(long id) {
this.id = id;
}
public void setCatgotyName(String catgotyName) {
this.catgotyName = catgotyName;
}
public void setDescription(String description) {
this.description = description;
}
@Override
public String toString() {
String str=catgotyName;
return str;
}
}
问题:
我已经重新写了图书分类类的tostring方法。 但是为什么当我输入相同名称(比如已经有言情类了还是可以添加成功) 还是能添加成功。
正在回答
1、重写equals和hashcode方法才是判别这个类是不是重复的呦,而不是toString()方法,toString()方法是让其输出属性值的。
2、建议你在判断语句中写个输出语句,看看是否进去了,如果没进去,,说明if中判断的结果是false
你再挨个打印输出一下这个表达式,看看具体哪个是false,或者具体哪个值是什么。看看具体哪个值与你期待的不一样,并找一下原因
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
if(entry.getKey().equals(id)||entry.getValue()==(catgoryName)){}
这句话 不管是写成这样或者是
if(entry.getKey().equals(id)||entry.getValue()。equals(catgoryName)){}都一样没用
- 参与学习 人
- 提交作业 1088 份
- 解答问题 10204 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星