中华考试网·阅读新闻
编程开发 > JSP > 文章内容

JSP学习教程:JSP动作JAVABEAN

2015-3-18编辑:ljnbset

JSP动作JAVABEAN

JAVABEAN是一个封装了业务逻辑的可重用组件,包括可视化组件以及封装业务逻辑的组件。例如:分页

Model 1: JSP + JAVABEAN 

Model 2:  JSP  + SERVLET + Service + Servlet + JSP  【MVC】

 

v        JAVABEAN构造

1.构造对象

"g" class="vo.Goods">

|

Goods g = new Goods();

 

2.设置属性值

"name" name="g1" value="234"/>

|

g.setName("123");

 

3.获取属性值

"name" name="g1"/>

g1.getName()

 

4.设置参数值

"g1" class="vo.Goods">

        "name" name="g1"

 value="<%=request.getParameter("name") %>"/>

        "count" name="g1"

 value="<%=Integer.parseInt(request.getParameter("count")) %>"/>

        "name" name="g1"/>

        "count" name="g1"/>

       


        "g2" class="vo.Goods">

        "name" name="g2" param="name"/>

       

        "count" name="g2" param="count"/>

        "name" name="g2"/>

        "count" name="g2"/>

 

5.设置生效范围

其值:page、application、request、session

 

作业:

1.练习课堂上的知识

2.写一个组件,用于打印对应的SQL语句中的数据。

"db" class="javabean.EmpJavaBean" scope="page" >

        "sql" name="db"

 value="select * from emp" />

        <%

            List emps = db.getList();

            out.print(emps.get(0).getEname());

        %>

 

public class EmpJavaBean {

 

    private IEmpDao dao = new EmpDaoImpl();

   

    private String sql ;

   

    private List list ;

 

    public String getSql() {

        return sql;

    }

 

    public void setSql(String sql) {

        this.sql = sql;

    }

 

    public List getList() {

        list = dao.listTables(sql);  //访问数据库

        return list;

    }

 

}

 

v        JAVABEAN要求

1.必须得有一个无参的构造方法

2.提供属性的接口,使用set/get方法

3.最好实现序列化接口

 

v        分页

public class Page {

 

    private int pageNo; // 当前第几页

 

    private int pageSize; // 每页多少条数据

 

    private int totalPages;// 总共多少页

 

    private int totalResults;// 总共多少记录

 

    private int defaultPageSize = 10;

 

    private List results;// 分页之后的结果

 

    private String pageSQL = "";// 分页的SQL语句

 

    private String sqlCount = "";// 获取总共多少条数据

   

    private String clazz ;

 

    private String html;

 

    public void setClazz(String clazz) {

        this.clazz = clazz;

    }

 

    public String getHtml() {

        this.html = "

"

                + "当前第"+getPageNo() +"/"+getTotalPages() +"页  共"+getTotalResults()+"行   "

                + ""

                + "首页"

                + "上一页"

                + "下一页"

                + "尾页"

                + "  

";

        return html;

    }

 

    private JdbcTemplate template = new JdbcTemplate();

 

    public int getDefaultPageSize() {

        return defaultPageSize;

    }

 

    public Page() {

        super();

        this.pageSize = defaultPageSize;

    }

 

    public String getPageSQL() {

        return pageSQL;

    }

 

    public void setPageSQL(String pageSQL) {

        this.pageSQL = pageSQL;

       

        try {

            IPageDao dao = (IPageDao)Class.forName(this.clazz).newInstance();

            this.results  =  dao.listTables(pageSQL, new Integer[] {

                pageNo * pageSize, (pageNo - 1) * pageSize });

        } catch (InstantiationException e) {

            e.printStackTrace();

        } catch (IllegalAccessException e) {

            e.printStackTrace();

        } catch (ClassNotFoundException e) {

            e.printStackTrace();

        }

    }

 

    public void setSqlCount(String sqlCount) {

        this.sqlCount = sqlCount;

        this.totalResults = template.queryForCount(sqlCount, null);

        this.totalPages = totalResults / pageSize == 0 ? 1 : (totalResults

                % pageSize == 0 ? totalResults / pageSize : totalResults

                / pageSize + 1);

    }

 

    public int getPageNo() {

        return pageNo == 0 ? 1 : pageNo;

    }

 

    public void setPageNo(int pageNo) {

        this.pageNo = pageNo < 1 ? 1 : (pageNo > totalPages ? totalPages

                : pageNo);

    }

 

    public int getPageSize() {

        return pageSize;

    }

 

    public void setPageSize(int pageSize) {

        this.pageSize = pageSize;

    }

 

    public int getTotalPages() {

        return totalPages;

    }

 

    public int getTotalResults() {

        return totalResults;

    }

 

    public List getResults() {

        return results;

    }

}

 

        "pg" class="javabean.Page" >

        "pageSize" name="pg"  value="3"/>

        "sqlCount" name="pg"

value="select count(*) from dept"/>

        "pageNo" name="pg" param="index"/>

        "clazz" name="pg"

 value="dao.impl.DeptDaoImpl"/>

        "pageSQL" name="pg"

value="select * from (select t.*,rownum rn from  dept t where rownum<=?) where rn>? "/>

   

        <%

            List emps = (List)pg.getResults();

        %>

        <%=emps.size() %>

       

"main">

           

               

 

               

           

       

        "html" name="pg"/>

   

 

注意JAVABEAN设置的先后顺序

JSP学习教程:JSP内置对象
咨询热线:4000-525-585(免长途费)