暑假学习4

           在昨天的springMVC中我们了解到框架的基本运行原理,但是需要注意在.jsp中的html页面,它对<body>属性值并没有核对,有时候会出现一个页面中出现两个<body>头而一个</body>尾仍然不会出现页面错误的消息,因为它对于无法识别的标签会自动忽略,不会解析。在UserBean页面传值中要注意页面传入的值名称必须与对应的值名称相同,否则会出现因为名称的不同找不到相对的值传入,引起插入、更新等操作出现错误。其次在updateDao类中的excute方法返回相应操作对操作表的影响行数是一个整型变量。

          今天的工程是建立在昨天的查询并对单条记录的操作基础上,需要注意传值与数据库MySQL的连接,对于查询表

中的所有数据,虽然也是传值,但是传入的数据是多个UserBean,这就需要我们在使用queryDao时使用excuteForObjectList方法然后返回一个可以容纳多个UserBean的List用于显示多条数据。在这里我们选用的List是java.util包中的类,java.util是一个日常实用的工具包。                       

    public List<UserBean> searchUser(UserBean frm) 
   {		
      List<UserBean> result= queryDao.executeForObjectList("User.selectUser", null);		
     return result;	
    }

        此时的UserSqlMap.xml中要把相应的条件去掉,选择所有表中数据。在查询得到的多项数据值,我们通过el表达式来获得,当然我们这里是多条数据,所有我们用到了<c:forEach>这个标签。这个标签在使用中要注意在页面的<html>标签前边加上<%@ include file="/WEB-INF/jsp/include.jsp"%>。这是通过程序自动将对应WEB-INF/jsp下边的include.jsp文件复制到当前的页面中,所有我们也可以直接将对应的include.jsp文件下的代码粘贴过来,其实我们主要用到的是<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>。这个语句可以让我们的<c:forEach>标签可以正确的被html页面解析出来,执行一个循环的显示对应的多个UserBean对象。当然这里的item应该是后台程序执行传过来的List的变量名,我们在前台把它里边的UserBean名字定义goodsInfo,这样方便我们显示每一个变量的所有属性值,varStatus是变量的一个状态,它可以显示item对象中的项目数等属性值。

<c:forEach items="${list}" var="goodsInfo" varStatus="status">				
	${goodsInfo.userId}  ${ goodsInfo.userName}</br>
</c:forEach>

         为了使上边的显示更规范化,我们将其显示在一个表格中,对于表格,我们学习了<table>标签以及对应的行标签(<tr>)和列标签(<td>),我们可以通过一个<c:forEach>标签将我们的数据创建一个多行两列的表。列的多少在一个<tr>标签中由<td>的标签个数来决定。为了方便我们删除特定某一项数据,我们将userIds属性值设置为一个链接<a href="">,让它在被点击的时候执行一个delete方法,删除指定的该条记录。在删除中我们需要一个筛选条件,传入一个userId,所以我在链接标签中加入了get传值,即<a href="init3?userId=${goodsInfo.userId}">${goodsInfo.userId}。在这里我们通过链接然后开始执行我们地址路径为/init3下的delete方法。注意这里的传值由于是链接的传值值能通过get方法,对应的<form>的传值,我们可以通过get和post两种传值方式。另外,对于初始页面,由于没有传值,它在后台controller的方法中method只能是get方法。而且在有返回值传入时需要在另一个页面显示,我们需要通过model的addAttribute方法来实现对传入值的记忆。

    由于我们最近的工程是需要连接数据库的,会写许多SQL文,很多时候会提示我们在SQL语句中存在错误,这就需要我们在提示错误附近将整个SQL语句复制粘在数据库中运行看错误的所在,否则一般不好找到错误,还有就是SQL文的书写关键字都要大写,在创建表名、数据库名称时要避免使用关键字。


你可能感兴趣的:(暑假学习4)