发表于: 2019-05-28 22:44:10

1 603


1. 简单了解html标签

2. 在页面进行增删改查的操作

a

@RequestMapping("/adduser")
   
//用这个方法来转到增加的页面,类型为String,返回到add.jsp页面
   
public String adduser() {
       
return "jsp/add";
    }
//增加页面跳转完毕后,点击修改跳转到add方法的地址,进行数据库的操作,这里可以不反回User.jsp,可以重写页面显示修改成功与否
   
@RequestMapping("/add")
   
public String add(User user, Model model) {
        System.
out.println("user is ===========" + user);
       
int userAdd = userDao.add(user);
       
if (userAdd == 1) {
            System.
out.println("add is ===========" + userAdd);
            model.addAttribute(
"code", "1");
            model.addAttribute(
"message", "增加成功");
        }
else {
            model.addAttribute(
"code", "0");
            model.addAttribute(
"message", "增加失败");
        }
       
return "jsp/User";
    }

 

 

增的页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<
html>
<
head>
    <
title>adduser</title>
</
head>
<
body>

<
form action="/WebTask_war_exploded/user/add" name="user">

   
姓名<input type="text" name="name"><br/>
   
修真类型<input type="text" name="type"><br/>
   
入学时间<input type="text" name="admissionTime"><br/>
   
毕业学校<input type="text" name="graduatedSchool"><br/>
   
日报链接<input type="text" name="daliyLink" }><br/>
   
立愿<input type="text" name="volunte"><br/>
   
师兄<input type="text" name="brother"><br/>
   
途径<input type="text" name="source"><br/>
   
创建时间<input type="text" name="createAt"><br/>
   
修改时间<input type="text" name="updateAt"><br/>
    <
input type="submit" value="提交">
</
form>

</
body>
</
html>

 

2.

//删除(在主页面直接删除不需要跳转页面)
   
@RequestMapping("/delete")
   
public String delete(int id, Model model) {
       
int userDelete = userDao.delete(id);
       
if (userDelete == 1) {
            System.
out.println("delete is ===========" + userDelete);
            model.addAttribute(
"code", "1");
            model.addAttribute(
"message", "删除成功");
        }
else {
            model.addAttribute(
"code", "0");
            model.addAttribute(
"message", "删除失败");
        }
       
return "jsp/User";
    }

删的页面:在查全部的页面中,直接由删除的连接:

C修改

//修改:修改是先进行查找出这条数据,再对这条数据进行修改,弹出界面,修改完毕之后进行提交
    //
查找一个
   
@RequestMapping("/findById")
   
public String update(int id, Model model) {
        System.
out.println("查找" + id + "");
        User userFindById =
userDao.findById(id);
        model.addAttribute(
"find", userFindById);
        System.
out.println("findnoe is ===========" + userFindById);
       
return "jsp/update";
    }
   
//修改
   
@RequestMapping("/update")
   
public String update(User user, Model model) {
        System.
out.println("修改数据=====" + user);
       
int userUpdate = userDao.update(user);
       
if (userUpdate == 1) {
            System.
out.println("修改数据=====" + userUpdate);
            model.addAttribute(
"code", "1");
            model.addAttribute(
"message", "修改成功");
        }
else {
            model.addAttribute(
"code", "0");
            model.addAttribute(
"message", "修改失败");
        }
       
return "jsp/User";
    }

修改页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<
html>
<
head>
    <
title>update</title>
</
head>
<
body>
<
form action="/WebTask_war_exploded/user/update" name="user">
      <
input type="hidden" value="${find.id}" name="id"><br/>
   
姓名<input type="text" name="name" value="${find.name}"><br/>
   
修真类型<input type="text" name="type" value="${find.type}"><br/>
   
入学时间<input type="text" name="admissionTime" value="${find.admissionTime}"><br/>
   
毕业学校<input type="text" name="graduatedSchool" value="${find.graduatedSchool}"><br/>
   
日报链接<input type="text" name="daliyLink" value="${find.daliyLink}"><br/>
   
立愿<input type="text" name="volunte" value="${find.volunte}"><br/>
   
师兄<input type="text" name="brother" value="${find.brother}"><br/>
   
途径<input type="text" name="source" value="${find.source}"><br/>
   
创建时间<input type="text" name="createAt" value="${find.createAt}"><br/>
   
修改时间<input type="text" name="updateAt" value="${find.updateAt}"><br/>
    <
input type="submit" value="修改">
</
form>

</
body>
</
html>
 
 

3.分页

UserDao

//该分页sql语句的执行方法,查询每页一定量的数据
List<User> selectPage(@Param("startNum") int start, @Param("pageSize") int pageSize);

//查询数量sql语句的执行方法
int selectCount();

 

Usermapper

 

<select id="selectPage" resultMap="BaseResultMap">

   
<!--从第几条开始,每页多少个-->
   
select * from task00 limit #{startNum},#{pageSize}
</
select>
<!--    查询符合该条件的数量-->
<select id="selectCount" resultType="int">
     select count(*) from task00

 

Usercontroller

 

    @RequestMapping("/task")
   
public String pagination(Model model, @RequestParam(value = "number", defaultValue = "1") int pageNow) {

        System.
out.println("now" + pageNow);
        
//声明上一页、下一页、每页数据数量,数据总量
       
int prePage;
       
int nextPage;
       
int pageSize = 10;
       
int allRow = userDao.selectCount();
       
int totalPages = allRow % pageSize == 0 ? allRow / pageSize : allRow / pageSize + 1;
       
//*上一页设定
        //
如果输入的当前页大于一,那么前一页就是减一,否则就是当前页
       
if (pageNow > 1) {
            prePage = pageNow -
1;
        }
else {
            prePage = pageNow;
        }
       
//*下一页设定
        //
如果输入的当前页小于总页数,那么下一页就是加一,否则就是当前页
       
if (pageNow < totalPages) {
            nextPage = pageNow +
1;
        }
else {
            nextPage = pageNow;
        }
       
/*分页思路:分页需要的几个元素:首页,上一页,下一页。尾页,当前页,总页数,跳页
         *
首页可以直接设定为页码数为1.。。。。尾页可以直接设定为总页数。
         *
上一页需要用if条件与第一页进行判定。。。。。。下一页需要用if条件和尾页进行判定
         *
跳转页可以直接输入数字,当前页可以直接读取
         *
跳页也是由两个if条件来设定范围的
        */
       
List<User> users = userDao.selectPage((pageNow - 1) * 10, 10);
        System.
out.println("总页数" + totalPages);
        model.addAttribute(
"number", pageNow);
        model.addAttribute(
"prePage", prePage);
        model.addAttribute(
"user", users);
        model.addAttribute(
"nextPage", nextPage);
        model.addAttribute(
"totalPages", totalPages);
       
return "jsp/User";
    }

Jsp

 

<%--    这是一个表,没有界限--%>
</table>
<
td><a href="/WebTask_war_exploded/user/task?number=1">首页</a></td>
<
td><a href="/WebTask_war_exploded/user/task?number=${prePage}">上一页</a></td>
<
td><a href="/WebTask_war_exploded/user/task?number=${nextPage}">下一页</a></td>
<
td><a href="/WebTask_war_exploded/user/task?number=${totalPages}">尾页</a></td>
<
td>当前第${number}</td>
<
td>总共${totalPages}</td>
<
br>
<
form action="/WebTask_war_exploded/user/task">
   
跳转<input type="text" name="number">
    <
input type="submit" value="GO">
</
form>
</
body>
</
html>

 

第一次分页是这样,数据并没有改变,晚上jetty安装没成功,回去继续思考的时候发现了问题

最终版

这是因为没有将分页中的数据导进来,用的还是原来的总表

这条语句:<c:forEach items="${user}" var="user">

 

 

4.rest风格

 

例子:

    @RequestMapping(value = "/list", method = RequestMethod.GET)

   
public String list(Model model) {

        System.
out.println("进来没===================");
        List<User> list =
userDao.findAll();
        System.
out.println("list is ===========" + list);
        model.addAttribute(
"list", list);
        model.addAttribute(
"code", "1");
        model.addAttribute(
"message", "查找成功");
       
return "jsp/User";
    }

 

 

·         5. .本地运行Jettyrun 插件,修改端口号为8080,浏览器访问任意查询接口,判断是否可以正确返回数据

 

 

出现问题:

重装了 一次又出现问题了,明天再看看吧。


小知识:

1..事务管理:一系列的操作中不能有一个失败,这个事务才算成功,有一个操作失败的话name任务会终止回到原来的的初始阶段

2.rest风格:

 

之前看的有点蒙,今天突然看到一个实例,豁然开朗

Rest是什么呢,首先来了解一下API,比如微信程序对外提供了一个API来用于进行数据的交互,你可以通过api将其他软件的东西分享到微信。而建立API要遵守一种规范,这个规范中有一种就叫做rest

之前前后端未分离的时候,前后端可以使单线程的,比如但是只有电脑,数据在后端直接传输到电脑的页面,但是后来有了手机,ipad等服务端,需要一个统一的接口来实现各种服务端的介入,这时候一定规范API就产生了

之前我们通过url来操作数据的时候,里面包含了动词,比如deleteadd是有了rest后,url直接指向对象。不包含动作,增删改查是由GETPOSTPUTDELETE进行实现。

是面向资源的

GET /rest/api/getDogs --> GET /rest/api/dogs 获取所有小狗狗 
GET /rest/api/addDogs --> POST /rest/api/dogs 添加一个小狗狗 
GET /rest/api/editDogs/:dog_id --> PUT /rest/api/dogs/:dog_id 修改一个小狗狗 
GET /rest/api/deleteDogs/:dog_id --> DELETE /rest/api/dogs/:dog_id 删除一个小狗狗

GET 用来获取资源,POST 用来新建资源,PUT 用来更新资源,DELETE 用来删除资源。

网络详解:1左边的这种设计,很明显不符合REST风格,上面已经说了,URI 只负责准确无误的暴露资源,而 getDogs/addDogs...已经包含了对资源的操作,这是不对的。相反右边却满足了,它的操作是使用标准的HTTP动词来体现。

 

Soap是面向操作的

明天计划:

理解一下API

继续完成任务

遇到问题:安装jetty

收获:

学会了分页,用html涉及简单的页面,理解了rest风格的形成意义


返回列表 返回列表
评论

    分享到