springmvc+hibernate基础学习二

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层
@Repository
public 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值