zoukankan      html  css  js  c++  java
  • strutsCRUD

    Bookdao

    public class BookDao extends JsonBaseDao{
    
        
        
        
        //分页查询书本信息
        //根据书本id查询当个书本信息
        public  List<Map<String, Object>> queryBook(Map<String, String[]> paMap,PageBean pageBean) throws InstantiationException, IllegalAccessException, SQLException{
            //String sql="SELECT * FROM t_book";
           String sql="select * from t_mvc_book where true";          
            String bname=JsonUtils.getParamVal(paMap, "bname");
            if(StringUtils.isNotBlank(bname)) {
                sql+=" and bname like '%"+bname+"%'";
            }
            return super.executeQuery(sql, pageBean);
              
          }
        
        //新增书本信息
          public int addBook (Map<String, String[]> paMap,PageBean pageBean) throws Exception, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException{
           String sql="insert into t_mvc_book(bname,price) values(?,?)";
           return super.executeUpdate(sql, new String[] {"bname","price"}, paMap);
     }
          
        //修改书本信息
          public int editBook (Map<String, String[]> paMap,PageBean pageBean) throws Exception, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException{
              String sql="update t_mvc_book set bname=?,price=? where bid=?";
              return super.executeUpdate(sql, new String[] {"bname","price","bid"}, paMap);
        }
          
          
        //新增书本信息
          public   int delBook (Map<String, String[]>paMap,PageBean pageBean) throws Exception, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException{
              String sql="delete from t_mvc_book where bid=?";
              return super.executeUpdate(sql, new String[] {"bid"}, paMap);
        }
          
          
          
          public List<Map<String, Object>>  book(Map<String, String[]>paMap,PageBean pageBean) throws Exception, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException{
              
              String bid=JsonUtils.getParamVal(paMap, "bid");
              if(StringUtils.isNotBlank(bid)) {
                  String sql="select * from t_mvc_book where bid="+bid;
                  return executeQuery(sql, pageBean);
              }
              else {
                  return null;
              }
           }
             
          
         
        
    }

    BookAction

    public class BookAction extends BaseAction{
       private BookDao bookDao=new BookDao();
       private  PageBean pageBean;
       private String type;
        
        public String getType() {
        return type;
    }
    
    
    public void setType(String type) {
        this.type = type;
    }
    
        //新增书本
        public String addBook() throws Exception, Exception {
            bookDao.addBook(request.getParameterMap(), null);
            return "success";
            
        }
        
        //修改书本
        public String editBook() throws Exception, Exception {
            bookDao.editBook(request.getParameterMap(), null);
            return "success";
            
        }
        
        
        //删除书本
        public String delBook() throws Exception, Exception {
            bookDao.delBook(request.getParameterMap(), null);
            return "success";
            
        }
        
        
        
        //查询当个
        public String book() throws Exception, Exception {
            List<Map<String, Object>> book =bookDao.queryBook(request.getParameterMap(), null);
             Map<String, Object> map = book.get(0);
            request.setAttribute("book", map);
            if("edit".equals(type)) {
                return "edit";
            }
            else {
                return "detail";
            }
            
            
        }
        
        
        
        public String queryBook() throws Exception, Exception {
            pageBean=new PageBean();
            pageBean.setRequest(request);
            List<Map<String, Object>> queryBook = bookDao.queryBook(request.getParameterMap(), pageBean);
            
            Map<String, Object> result=new HashMap<>();
            result.put("queryBook",queryBook);
            result.put("pageBean", pageBean);
            request.setAttribute("result", result);
            return "list";
            
        }
    }

     BaseAction

    public abstract class  BaseAction implements ServletResponseAware,ServletRequestAware{
    
        
        protected HttpServletResponse response;
        protected HttpServletRequest request;
        protected HttpSession session;
        protected ServletContext application;
        
        @Override
        public void setServletRequest(HttpServletRequest request) {
            // TODO Auto-generated method stub
            this.request=request;
            this.session=request.getSession();
            this.application= request.getServletContext();
        }
        
        
        @Override
        public void setServletResponse(HttpServletResponse response) {
            // TODO Auto-generated method stub
            this.response=response;
        }
    }

     book实体

    public class Book implements Serializable{
       private Integer bid;
       private String bname;
       private Float price;
       
       
       
       
       
    public Integer getBid() {
        return bid;
    }
    
    
    
    
    
    public void setBid(Integer bid) {
        this.bid = bid;
    }
    
    
    
    
    
    public String getBname() {
        return bname;
    }
    
    
    
    
    
    public void setBname(String bname) {
        this.bname = bname;
    }
    
    
    
    
    
    public Float getPrice() {
        return price;
    }
    
    
    
    
    
    public void setPrice(Float price) {
        this.price = price;
    }
    
    
    
    
    
    @Override
    public String toString() {
        return "Book [bid=" + bid + ", bname=" + bname + ", price=" + price + "]";
    }
       
        
        
    }

     分页助手类

    public class PageTag extends  BodyTagSupport {
        
        
        private PageBean bean;
    
        public PageBean getBean() {
            return bean;
        }
    
        
        
        public void setBean(PageBean bean) {
            this.bean = bean;
        }
        
        @Override
        public int doStartTag() throws JspException {
         JspWriter out= pageContext.getOut();
          try {
            out.print(tohtml());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
          return  super.doStartTag();
        }
        
        private String tohtml() {
            StringBuilder sb=new StringBuilder();
            //拼接下一次发送请求所要提交的隐藏的form表单
           sb.append("<form id='pageBeanForm' action='"+bean.getUrl()+"' method='post'>");
           sb.append(" <input type='hidden' name='page'>");
          
           Map<String, String[]> paMap = bean.getParameterMap();
           if(paMap!=null&&paMap.size()>0) {
               Set<Entry<String, String[]>> entrySet = paMap.entrySet();
           for (Entry<String, String[]> entry : entrySet) {
           //上一次请求可能携带页面name=page的参数,但是改参数在前面已经单独赋值
        //为什么要单独赋值呢?因为上一次请求是第一页的数据,下一次可能是第二页,因为这前后请求page对应的值是不一样的,要单独赋值
               if(!"page".equals(entry.getKey())) {
                for(String val:entry.getValue()) {
                    sb.append("<input type='hidden' name='"+entry.getKey()+"' value='"+val+"'>");
                }
            }
        }
           }
           sb.append(" </form>");
          
            //拼接分页条
           sb.append("<div style='text-align: right; font-size: 12px;'>");
           sb.append(" 每页"+bean.getRows()+"条,共"+bean.getTotal()+"条,第"+bean.getPage()+"页,共"+bean.getMaxPage()+"页&nbsp;&nbsp;<a href='javascript:gotoPage(1)'>首页");
           sb.append(" </a>&nbsp;&nbsp;<a");
           sb.append(" href='javascript:gotoPage("+bean.previousPage()+")'>上一页</a>&nbsp;&nbsp;<a");
           sb.append(" href='javascript:gotoPage("+bean.nextPage() +")'>下一页</a>&nbsp;&nbsp;<a");
           sb.append(" href='javascript:gotoPage("+bean.getMaxPage()+")'>尾页</a>&nbsp;&nbsp;<input type='text'");
           
           sb.append(" id='skipPage'");
           sb.append(" style='text-align: center; font-size: 12px;  50px;'>&nbsp;&nbsp;<a");
           sb.append(" href='javascript:skipPage()'>Go</a>");
           sb.append(" </div>");
           //拼接所需要的js代码
           sb.append(" <script type='text/javascript'>");
           sb.append(" function gotoPage(page) {");
           sb.append("   document.getElementById('pageBeanForm').page.value = page;");
           sb.append("    document.getElementById('pageBeanForm').submit();");
           sb.append(" }");
           sb.append(" function skipPage() {");
           sb.append("   var page = document.getElementById('skipPage').value;");
           sb.append("   if(!page || isNaN(page) || parseInt(page)<1 || parseInt(page)>"+bean.getMaxPage()+"){");
           sb.append("    alert('请输入1~N的数字');");
           sb.append("    return;");
           sb.append(" }");
           sb.append("   gotoPage(page);");
           sb.append("}");
           sb.append("</script>");
           return sb.toString();
        
        }
    }

     struts-book.xml

    <?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">
    <struts>
      <package name="struts-book" extends="struts-base">
      <action name="bookAction_*"
      class="com.hmc.struts2_03.action.BookAction"  method="{1}">
       
       <result name="success" type="redirect">
        /bookAction_queryBook.action
       </result>
       
       <result name="list" type="dispatcher">
       /bookList.jsp
       </result>
       
       <result name="edit" >
       /bookEdit.jsp
       </result>
       
       
       <result name="detail" >
       /bookDetail.jsp
       </result>
       
       
       </action>
      </package>
    
    
    
    </struts>

     创建jsp页面进行测试

    新增

    结果

    修改

    修改圣墟为斗神

    结果

    删除斗神

    模糊查询(不死不灭)

  • 相关阅读:
    较快者等待较慢者发出通知
    Uint and uintptr in golang 非类型安全指针
    C10K C10M 通过DPDK+用户态协议栈来进行内核旁路来提升网络性能
    大型产品团队敏捷发布火车运行指南
    注册中心
    RPA(Robotic Process Automation,机器人流程自动化)
    Actor model
    基于Protobuf共享字段的分包和透传零拷贝技术
    基于etcd实现大规模服务治理应用实战
    删除 服务 注册表
  • 原文地址:https://www.cnblogs.com/xmf3628/p/11260762.html
Copyright © 2011-2022 走看看