接前面的内容:
测试框架搭建是否OK
测试路径跳转,映射地址是否正确
前端新建文件夹:jsp,js,image
Jsp文件夹放置jsp页面
Web.xml文件中增加:<welcome-file>index.jsp</welcome-file>
Index.jsp
<%@ page language="java"contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%Stringpath = request.getContextPath();
String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h5><a href="<%=basePath%>user/login.do">进入用户管理页</a></h5>
</body>
</html>
Web包下新建:User.java
package com.test.web;
importjavax.servlet.http.HttpServletRequest;
importorg.springframework.stereotype.Controller;
importorg.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/user")
public class User {
//private String basePath="/jsp";
@RequestMapping("/login")
public String getAllUser(HttpServletRequest request){
System.out.println("*****************************aaaaa");
return "/login";
}
}
Jsp文件夹下新建:login.Jsp
(这里的路径可以直接跳转的原因:spring-mvc.xml配置:视图解析器,前置和后置,可以直接拦截到)
<%@ page language="java"contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%String path = request.getContextPath();
String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<p><a href="<%=basePath%>book/getAllBook.do">管理书籍</a></p>
</body>
</html>
结果如下:
接下来测试book的前后是否能正常工作:
有以上路径:<p><a href="<%=basePath%>book/getAllBook.do">管理书籍</a></p>
在web包下建立BookWeb.java
package com.test.web;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.test.manager.BookManager;
@Controller
@RequestMapping("/book")
public classBookWeb {
private String basePath="/book/";//前台jsp页面的基本路径
@Resource(name="bookManager")
privateBookManager bookManager;
@RequestMapping("/getAllBook")
publicString getAllUser(HttpServletRequest request){
System.out.println("*****************************getAllBook");
System.out.println("bookManager.getAllBook()--------"+bookManager.getAllBook());
request.setAttribute("bookList", bookManager.getAllBook());
return basePath+"book_list";
}
}
在jsp文件夹下新建book文件夹放置book的增删改查
booklist.jsp
<table >
<c:if test="${!empty bookList }">
<thead>
<tr>
<th data-options="field:'bookname',width:200">bookname</th>
<th data-options="field:'auther',width:100">auther</th>
<th data-options="field:'isbn',width:100">isbn</th>
<th data-options="field:'price',width:100">price</th>
<th data-options="field:'stock',width:100">stock</th>
</tr>
</thead>
<c:forEach items="${bookList }" var="book">
<tr>
<td>${book.bookname }</td>
<td>${book.auther }</td>
<td>${book.isbn }</td>
<td>${book.price }</td>
<td>${book.stock }</td>
</tr>
</c:forEach>
</c:if>
</table>
运行结果:
报错原因:
是在之前将BookDaoImpl 中的Book 写成了小写的book
将BookDaoImpl 中hql 语句中的book 换成Book
String hql = "from book u where u.id=?";
修改BookDaoImpl.java
package com.test.dao;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import com.test.entity.Book;
public class BookDaoImpl implements BookDao{
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@Override
publicBook getBook(String id) {
//TODO Auto-generated method stub
String hql = "from Book u where u.id=?";
Query query = sessionFactory.getCurrentSession().createQuery(hql);
query.setString(0, id);
return (Book)query.uniqueResult();
}
@Override
publicList<Book> getAllBook() {
//TODO Auto-generated method stub
String hql = "from Book";
Query query = sessionFactory.getCurrentSession().createQuery(hql);
return query.list();
}
@Override
publicvoid addBook(Book book) {
//TODO Auto-generated method stub
sessionFactory.getCurrentSession().save(book);
}
@Override
publicboolean delBook(String id) {
//TODO Auto-generated method stub
String hql = "delete Book u where u.id = ?";
Query query = sessionFactory.getCurrentSession().createQuery(hql);
query.setString(0, id);
return (query.executeUpdate() > 0);
}
@Override
publicboolean updateBook(Book book) {
//TODO Auto-generated method stub
String hql = "update Book u set u.bookname =?,u.isbn=?,u.price=?,u.stock=? where u.id = ?";
Query query = sessionFactory.getCurrentSession().createQuery(hql);
query.setString(0, book.getAuther());
query.setString(1, book.getBookname());
query.setString(2, book.getIsbn());
query.setInteger(3, book.getPrice());
query.setInteger(4, book.getStock());
return (query.executeUpdate() > 0);
}
}