springmvc+hibernate基础学习二

来源:互联网 发布:2钻淘宝店铺转让多少钱 编辑:程序博客网 时间:2024/06/07 07:09

1.在视图层上

<%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 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><%    String path = request.getContextPath();%><script type="text/javascript" src="<%=path%>/user/js/jquery-3.1.1.min.js"></script><style type="text/css">body{text-align: center}.div{margin: 0 auto;width:600px; height: 300px; border :1px solid #F00}.t{margin:0 auto; width:600px; height:300px; border:1px solid #F00}</style><script type="text/javascript">    $(document).ready(function(){        $('#search')        .click(function() {        var text = $('#searchText').val();        //alert("text="+text);        window.location.href = "/TestSH/user/user/searchUser.do?name=" + text;        });    });</script></head><body>    <div class="div">        <!-- <form action="" name="searchForm"> -->            <input type="text" id="searchText" />            <input type="button" id="search"  value="搜索"/>        <!-- </form> -->        <table border="1" class="t">            <tbody>                <tr>                    <th>姓名<th>                    <th>密码<th>                <tr>                <c:if test="${!empty userList }">                    <c:forEach items="${userList }" var="user">                        <tr>                            <td>${user.name }</td>                            <td>${user.pass }</td>                        </tr>                    </c:forEach>                </c:if>            </tbody>        </table>    </div></body></html>

2.在控制层上(UserAction类)

//标注此类处于控制层@Controller//规定网页访问该控制层模块的url@RequestMapping(value=Path.USER)public class UserAction {    //业务接口注入的注解之一,根据类型自动装配对应内容    //1.还可以用@Resource,默认按名字name装配,如果指明type则按类型装配,2.使用@Autowired注释进行byType注入,如果需要byName(byName就是通过id去标识)注入,增加@Qualifier注释    @Autowired    private UserManager userManager;    /**     *      * @param flag网页到后台传参的方法之一,对应从网页传过来的参数,可有多个,但要一一对应     * @param request和response一样,用到什么写什么     * @return 返回此时需要跳转的url     * @throws Exception     */     //在此模块下的网页的实际url    @RequestMapping(value=Path.INDEX,method=RequestMethod.POST)    public String getAllUsers(String flag, HttpServletRequest request) throws Exception{        System.out.println("flag="+ flag);        if(flag != null && flag.equals("search")){        }        else{            request.setAttribute("userList", userManager.getAllUser());        }        return Path.INDEX;    }}

3.在持久层上(UserDao)
我这里没有业务逻辑层,如果有的话,则是业务逻辑层调用持久层

//用于标注业务逻辑层,即service层@Service  public class UserServiceImpl implements UserService {     }
//用于标注数据访问层,即DAO层@Repositorypublic class UserDao implements IUserDao{    @Autowired    private SessionFactory sessionFactory;    @Override    public List<User> searchUser(String name) {        // TODO Auto-generated method stub        String hql = "from User";          Session session = sessionFactory.getCurrentSession();        Query query = session.createQuery(hql);      //  session.getTransaction().commit();        List<User> list = query.list();        List<User> res = new ArrayList<>();          LuceneUtil lu = new LuceneUtil();        System.out.println("---------------------");        try {            lu.IndexBuilder(list);            TopDocs hits = lu.search(name); // 输入查询内容后,查询            ScoreDoc[] scoreDocs = hits.scoreDocs;            for (int i = 0; i < scoreDocs.length; i++) { // 返回查询后结果                int docId = scoreDocs[i].doc;                Document document = lu.iSearcher.doc(docId);                System.out.println("(" + i + ")" + document.toString());                res.add(new User(Integer.parseInt(document.get("ID")), document.get("Name"), document.get("Pass")));//              System.out.println(document.get("ID"));//              System.out.println(document.get("Name"));//              System.out.println(document.get("Pass"));            }        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return res;    }}
0 0
原创粉丝点击