`
blues1021
  • 浏览: 139877 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

JSP和Action类,dao类间的关系details.

    博客分类:
  • SSH
 
阅读更多

一、在.jsp中用form传入参数:

<html:form action="/stuUser?method=findCourse">
        <table border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#afdf69" width="100%">
            <tr>
                <td height="28" colspan="4" bordercolor="#FFFFFF" bgcolor="#FFFFFF"><span >&nbsp;请输入搜索条件:

              </span></td>
            </tr>
            <tr>
                <td height="28" bordercolor="#FFFFFF" bgcolor="#FFFFFF" align="center">课程类型:
                    <html:select property="courseType">
                        <html:option value=""></html:option>
                        <html:option value="校选人文">校选人文</html:option>
                        <html:option value="校选自然">校选自然</html:option>
                    </html:select>                 
                </td>
                <td height="24" bordercolor="#FFFFFF" bgcolor="#FFFFFF" align="center">有无余量:
                       <html:select property="left">
                           <html:option value=""></html:option>
                        <html:option value="有">有</html:option>
                        <html:option value="无">无</html:option>
                    </html:select>  
                </td>
                <td>上课时间 : <html:select property="week">
                           <html:option value=""></html:option>
                           <html:option value="周一">周一</html:option>
                           <html:option value="周二">周二</html:option>
                           <html:option value="周三">周三</html:option>
                           <html:option value="周四">周四</html:option>
                           <html:option value="周五">周五</html:option>
                           <html:option value="周六">周六</html:option>
                           <html:option value="周日">周日</html:option>
                         </html:select>
                         <html:select property="time">
                           <html:option value=""></html:option>
                           <html:option value="第1,2,3节">第1,2,3节</html:option>
                           <html:option value="第4,5节">第4,5节</html:option>
                           <html:option value="第6,7,8节">第6,7,8节</html:option>
                           <html:option value="第10,11,12节">第10,11,12节</html:option>
                         </html:select>                    
                </td>
                
                     <td height="24" bordercolor="#FFFFFF" bgcolor="#FFFFFF" align="center"><html:submit value="搜索"/></td>
            </tr>
         </table>
    </html:form>

二、在Action类中读取参数调用dao操作数据库方法或业务逻辑处理:

public ActionForward findCourse(ActionMapping mapping,ActionForm form,//用form作为一个传递参数set.
                HttpServletRequest request, HttpServletResponse response) {
            
            DynaActionForm courseForm = (DynaActionForm) form;
            String courseType = courseForm.getString("courseType");
            String left = courseForm.getString("left");
            String week = courseForm.getString("week");
            String time = courseForm.getString("time");
            
            Map<String,String> map = new HashMap<String,String>();
            
            map.put("courseType", courseType);
            map.put("left", left);
            map.put("week", week);
            map.put("time", time);
            
            List<Course> list = courseDao.findBySearch(map) ;//调用点,为dao类方法
            Iterator it = list.iterator();
            int number = 0;
            while(it.hasNext()){
                it.next();
                number++;
            }
            request.setAttribute("list", list);//和后面的迭代设置list
            request.setAttribute("number", number);
            return findSch(mapping, form, request, response) ;//调用点,为action类中方法
        }

三、findBySearch在dao类中处理

 public List<Course> findBySearch(Map<String,String> map) {///////////根据map中的条件查找
        
        List<Course> list=null;
        String courseType=map.get("courseType");
        String remain = map.get("left");
        String week = map.get("week");
        String time = map.get("time");
        if(!courseType.equals("")){
            String sql="FROM Course WHERE ";
            sql += " courseType ="+"'"+courseType+"'";
            if(remain.equals("")||remain.equals("有")){//courseType不为空,remain不为空
                sql += " AND remain > 0";
            }
            if(remain.equals("无")){
                sql += " AND remain = 0";
            }
            if(!week.equals("")){
                sql += " AND week ="+"'"+week+"'";
            }
            if(!time.equals("")){
                sql += " AND time ="+"'"+time+"'";
            }
            list = getHibernateTemplate().find(sql);
            return list;
        }
        if(courseType.equals("")){
            String sql="FROM Course WHERE courseType IN ('校选人文','校选自然') ";
            if(remain.equals("")||remain.equals("有")){////////////////courseType不为空,remain不为空
                sql += " AND remain > 0";
            }else if(remain.equals("无")){
                sql += " AND remain = 0";
            }
            if(!week.equals("")){
                sql += " AND week ="+"'"+week+"'";
            }
            if(!time.equals("")){
                sql += " AND time ="+"'"+time+"'";
            }
            list = getHibernateTemplate().find(sql);
            return list;
        }
        else{
            list=list =  getHibernateTemplate().find("FROM Course");
            return list;
        
        }
    }

四、 在同一个Action类中调用处理:

public ActionForward findSch (ActionMapping mapping, ActionForm form,///////找出可选的和已选的校选课
                HttpServletRequest request, HttpServletResponse response) {
            
            int stuId = (Integer)request.getSession().getAttribute("loginId");/////////学生序号
            Map map = stuUserDao.findSchCourse(); //dao类调用点
            List<Course> list = (List)map.get("list");//////////////////////查询学生可选的校选课程
            int number = (Integer)map.get("number");
            List<Course> clist = stuUserDao.findSelectedSch(stuId);/ ///////////查询学生所选校选课程,dao类调用点
            
            if(request.getAttribute("list")==null){
               request.setAttribute("list", list);//关键的返回值设置,使得在jsp中可以直接用${list.成员}将其取得值
               request.setAttribute("number", number);
            }
            request.setAttribute("clist", clist); //关键的返回值设置
            return mapping.findForward("selectSch");//关键的 转到选择校选课页面,也就是取list,clist的页面
        }

public List<Course> findSelectedSch (int stuId){////////////根据学生编号查找已选的校选修课程
        
            Query q = getSession().createQuery("FROM  Course  WHERE id IN(SELECT courseId FROM StuCourse  WHERE stuId=?) AND courseType IN('校选人文','校选自然')");        
            q.setInteger(0, stuId);
            List<Course> list = q.list() ;
            System.out.println("查询出学生已选的课程");
            return list;
         }
       

五、再调用了stuUserDao类:

public Map<String,Object> findSchCourse (){//////////////////查出学生可选的校选课
            
            Map map =new HashMap();
            String sql = "FROM Course WHERE courseType IN('校选人文','校选自然') AND remain>0 AND selective='可选'";
            List<Course> list = getHibernateTemplate().find(sql);
            map.put("list", list);
            Iterator it = list.iterator();
            int i=0;
            while(it.hasNext()){
                it.next();
                i++;
            }
            map.put("number", i);
            return map;
        }

六、返回到.jsp

1.<html:form action="/stuUser.do?method=insertSch">
        <table width="760" align="center" cellspacing="0">
            <tr>
                <td height="30" align="center" >&nbsp;</td>
                <td align="center" ><strong>课程名称</strong></td>
                <td align="center" ><strong>课程安排</strong></td>
                <td align="center" ><strong>上课时间</strong></td>
                <td align="center" ><strong>上课地点</strong></td>
                <td align="center" ><strong>授课教师</strong></td>
                <td align="center" ><strong>课程学分</strong></td>
                <td align="center" ><strong>课程类型</strong></td>
                <td align="center" ><strong>总量</strong></td>
                <td align="center" ><strong>余额</strong></td>
                <td align="center" ><strong>是否可选</strong></td>
            </tr>
            <%int i=0;%>
            <logic:iterate id="list" name="list">
            <%i++;request.setAttribute("nt",i); %><!-- 实现单选 -->
                <tr>
                  <td height="30" valign="middle">
                     <html:checkbox  property="id"  value="${list.id}"  onclick="validate(${requestScope.nt})"></html:checkbox>
                  </td>
                    <td valign="middle" bgcolor="#ffffff">${list.courseName}</td>
                    <td valign="middle" bgcolor="#ffffff">第${list.startTime}-${list.finishTime}周</td>
                    <td valign="middle" bgcolor="#ffffff">${list.week}${list.time}</td>
                    <td valign="middle" bgcolor="#ffffff">${list.courseAddr}</td>
                    <td valign="middle" bgcolor="#ffffff">${list.courseTch}</td>
                    <td valign="middle" bgcolor="#ffffff">${list.courseCredit}</td>
                    <td valign="middle" bgcolor="#ffffff">${list.courseType}</td>
                    <td valign="middle" bgcolor="#ffffff">${list.total}</td>
                    <td valign="middle" bgcolor="#ffffff">${list.remain}</td>
                    <td valign="middle" bgcolor="#ffffff">${list.selective}</td>
                </tr>
            </logic:iterate>
            <tr>
                <td align="left"> <html:submit>提交</html:submit></td>
            </tr>
        </table>
    </html:form>
    2.<table width="780" align="center" cellspacing="0">
            <tr>
                <td>已选课程</td>
            </tr>
            <tr>
                
                <td  ><strong>课程名称</strong></td>
                <td  ><strong>课程安排</strong></td>
                <td  ><strong>上课时间</strong></td>
                <td  ><strong>上课地点</strong></td>
                <td  ><strong>授课教师</strong></td>
                <td  ><strong>课程学分</strong></td>
                <td  ><strong>课程类型</strong></td>
                <td  ><strong>总量</strong></td>
                <td  ><strong>余额</strong></td>
                <td  ><strong>是否可选</strong></td>
            </tr>
            <c:if test="${!empty clist}">
            <logic:iterate id="clist" name="clist">

                <tr>
                  
                    <td valign="middle" bgcolor="#ffffff">${clist.courseName}</td>
                    <td valign="middle" bgcolor="#ffffff">第${clist.startTime}-${clist.finishTime}周</td>
                    <td valign="middle" bgcolor="#ffffff">${clist.week}${clist.time}</td>
                    <td valign="middle" bgcolor="#ffffff">${clist.courseAddr}</td>
                    <td valign="middle" bgcolor="#ffffff">${clist.courseTch}</td>
                    <td valign="middle" bgcolor="#ffffff">${clist.courseCredit}</td>
                    <td valign="middle" bgcolor="#ffffff">${clist.courseType}</td>
                    <td valign="middle" bgcolor="#ffffff">${clist.total}</td>
                    <td valign="middle" bgcolor="#ffffff">${clist.remain}</td>
                    <td valign="middle" bgcolor="#ffffff">已选</td>
                    <td  >
                    <html:link page="/stuUser.do?method=dropCourse"
                    paramId="id" paramName="clist" paramProperty="id">退选</html:link>
                </td>
                </tr>
            </logic:iterate>
            </c:if>

  <tr>
      <td height="85" colspan="2" align="center" background="images/bottomU.gif">&nbsp;</td>
  </tr>
  </table>

分享到:
评论

相关推荐

    jsp.javaBean.DAO.rar_javabean dao_jsp java dao

    这个压缩包“jsp.javaBean.DAO.rar_javabean dao_jsp java dao”似乎包含了一个使用这些技术实现用户登录功能的示例项目。下面我们将深入探讨这些知识点。 首先,`DataBaseConnection.java`文件代表了数据库连接的...

    JSP+DAO.rar_dao_dao java_java dao_jsp DAO_设计模式

    在JSP页面中,通过Servlet或Action类来调用DAO方法,获取数据,然后在JSP中使用EL(Expression Language)或JSTL(JavaServer Pages Standard Tag Library)标签来显示这些数据。例如,Servlet或Action类可以如下所...

    dao.rar_DAO模型jsp_DAO模型例子_jsp DAO模型

    通过阅读和分析这些代码,你可以了解如何组织和实现DAO模式,以及如何在JSP中使用它来展示数据。此外,注释的详细性将帮助你更好地理解每个部分的功能和作用。 学习DAO模型对于理解Java Web开发中的分层架构至关...

    DAO.zip_dao模式jsp修改_java DAO设计

    1. **DAO接口和实现类**: 在DAO模式中,首先定义一个接口,例如`UserDAO`,该接口声明了所有与用户相关的数据库操作方法,如`insertUser()`用于插入用户,`queryUser()`用于查询用户。然后,创建一个实现这个接口...

    DAO.rar_MyEclipse dao_dao mysql_myeclipse jsp DAO_myeclipse mysq

    【标题】"DAO.rar_MyEclipse dao_dao mysql_myeclipse jsp DAO_myeclipse mysq" 提供的信息表明,这是一个关于使用MyEclipse 7.0开发的项目,其中涉及了DAO(数据访问对象)模式的设计,该设计与MySQL数据库以及JSP...

    javax.servlet.jar,javax.servlet.jsp.jar

    因此,"javax.servlet.jar"和"javax.servlet.jsp.jar"这两个JAR文件在EJB中是默认不包含的,需要单独引入。这两个库是Java Servlet和JavaServer Pages(JSP)技术的基础,对于构建基于Java的Web应用程序至关重要。 ...

    javax.servlet.jsp.jstl-api-1.2.1.jar

    javax.servlet.jsp.jstl-api-1.2.1.jar

    DAO_jsp.rar_it

    在这个"DAO_jsp.rar_it"的压缩包中,我们很可能是找到了一个关于如何在JSP(JavaServer Pages)中使用DAO模式的基本示例。 JSP是一种动态网页技术,允许开发者在HTML代码中嵌入Java代码,以实现服务器端的业务处理...

    基于JSP+Servlet+Dao实现的贫困认定管理系统.zip

    基于JSP+Servlet+Dao实现的贫困认定管理系统 基于JSP+Servlet+Dao实现的贫困认定管理系统 基于JSP+Servlet+Dao实现的贫困认定管理系统 基于JSP+Servlet+Dao实现的贫困认定管理系统 基于JSP+Servlet+Dao实现的贫困...

    JSP+DAO和MVC+DAO(基于MySQL数据库分页)

    无论是JSP+DAO还是MVC+DAO,分页的关键在于正确计算和使用页码、每页大小以及SQL的分页参数。在JSP中,分页逻辑更多地分布在JSP页面本身;而在MVC框架中,分页逻辑通常被封装在Service和DAO层,使得代码结构更清晰,...

    javax.servlet.jar与javax.servlet.jsp.jar

    4. **javax.servlet.jsp.tagext.*包**:包含自定义标签库的接口和类,如Tag接口和TagSupport类,用于创建可重用的JSP标签。 5. **javax.servlet.jsp.HttpJspPage**:接口,表示一个HTTP JSP页面,JSP文件在编译时会...

    JSP DAO留言管理代码实例 笔记.rar

    本实例将介绍如何使用JSP和DAO模式来实现一个留言管理系统,从而达到显示逻辑与数据操作的分离,提高代码的可维护性。 首先,我们来看DAO设计模式的核心思想。DAO模式提供了一个接口,该接口定义了对特定数据源进行...

    JSP+DAO留言管理程序(代码+笔记)

    通过此项目,你可以熟悉JSP的页面指令、内置对象、脚本元素等特性,掌握DAO模式的设计和实现,以及如何使用JDBC进行数据库操作。同时,这也能帮助你了解Web开发的基本流程,为更复杂的项目打下坚实基础。 总结,JSP...

    JSP直接获取dao层数据实例 java mysql jsp dao

    在Java中,我们可以创建一个DAO接口和它的实现类,如`UserDao.java`和`UserDaoImpl.java`。`UserDao`定义了操作数据库的方法,如`getUserById(int id)`,而`UserDaoImpl`则实现了这些方法,通过JDBC连接MySQL数据库...

    jsp例子.pdf dao 留言管理实例

    在IT领域的Web开发中,JSP(Java Server Pages)与DAO(Data Access Object)模式是构建动态网站和处理数据存取的重要技术。本文将以“jsp例子.pdf:dao留言管理实例”这一具体案例为基础,深入解析如何运用JSP结合...

    jsp + javaBean +Dao 写的博客程序

    这个标题揭示了一个基于Web的博客应用程序,它采用经典的Java Web开发技术栈:JSP(JavaServer Pages)、JavaBean和DAO(Data Access Object)模式。这是一个典型的MVC(Model-View-Controller)架构的简化版本,...

    jsp+bean DAO 留言板

    【JSP + Bean + DAO 留言板】是一个典型的Web应用程序开发实例,它结合了JavaServer Pages(JSP)、JavaBeans(Bean)以及Data Access Object(DAO)设计模式,用于构建一个简单但功能完整的留言管理系统。...

    S2SH中JSP页面调用dao的方法

    ### S2SH中JSP页面调用DAO的方法详解 #### 一、背景介绍 在Struts2 + Spring + Hibernate(简称S2SH)框架中,数据访问层(DAO层)通常与视图层(如JSP页面)进行解耦设计。这种设计模式有助于提高系统的可维护性和...

    jsp、servlet进行增删改查,dao层和service层分开

    在Java Web开发中,"jsp、servlet进行增删改查,dao层和service层分开"是一种常见的设计模式,它遵循了MVC(Model-View-Controller)架构,旨在提高代码的可维护性和可扩展性。以下是这个模式的详细解释: 1. **...

Global site tag (gtag.js) - Google Analytics