发表于: 2020-01-08 15:33:24
1 1109
今天完成的事情:
1.将接口改成restfuf风格的
controller层:根据ID查询是个小测试所以没改。
package com.wp.sm.controller;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.wp.sm.beans.User;
import com.wp.sm.service.UserService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@Controller
@RequestMapping("/user")
public class UserController {
@Resource(name = "userService")
private UserService userService;
/**
* 根据id查询
*/
@RequestMapping(value = "/selectUserById")
public ModelAndView selectUserById(HttpServletRequest request) {
ModelAndView mv = new ModelAndView();
int id = Integer.parseInt(request.getParameter("id"));
try {
User user = userService.selectUserById(id);
mv.setViewName("selectbyid");
mv.addObject("user", user);
} catch (Exception e) {
e.printStackTrace();
}
return mv;
}
@RequestMapping(value ="/delete",method=RequestMethod.DELETE)
public String deleteById(int id) throws Exception {
userService.deleteUser(id);
return "redirect:show";
}
@RequestMapping(value ="/insertUserView")
public String addUserView() {
return "insert";
}
@RequestMapping(value = "/insert",method=RequestMethod.POST)
public String insertUser(User user) throws Exception {
userService.insertUser(user);
return "redirect:show";
}
@RequestMapping(value ="/update/{id}",method=RequestMethod.GET)
public String update(@PathVariable("id") int id, Model model) throws Exception {
model.addAttribute("user",userService.selectUserById(id));
return "update";
}
@RequestMapping(value = "/update",method = RequestMethod.PUT)
public String update(User user) throws Exception {
userService.updateUser(user);
return "redirect:show";
}
@RequestMapping(value ="/show",method=RequestMethod.GET)
public String userList(@RequestParam(required=true,defaultValue="1") Integer page, HttpServletRequest request, Model model) throws Exception {
//page默认值是1,pageSize默认是10,我写的是2 意思是从第1页开始,每页显示2条记录。
PageHelper.startPage(page, 10);
List<User> userList = userService.selectAllUser();
System.out.println(userList);
PageInfo<User> p=new PageInfo<User>(userList);
model.addAttribute("page", p);
model.addAttribute("userList",userList);
return "show";
}
}
web.xml中添加一个过滤器
<!-- 浏览器form表单只支持get和post请求,而delete和put请求并不支持。HiddenHttpMethodFilter是spring中自带的一个过滤器,
可以将浏览器表单请求转换为标准的http请求,使它们支持get、post、delete、put请求。-->
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
jsp页面作出如下更改:
<form action="/user/delete?id=${p.id}" method="post">
<input type="hidden" name="_method" value="DELETE">
<form id="updateForm" action="${pageContext.request.contextPath}/user/update" method="post">
<input type="hidden" name="_method" value="PUT">
<form id="insertForm" action="${pageContext.request.contextPath}/user/insert" method="post">
<input type="hidden" name="_method" value="POST">
明天计划的事情:
完成后面的任务
遇到的问题:
1.改添加数据时,出现乱码,猜测应该是过滤器的原因,在添加HidedenHttpMethodFilter的时候把这个过滤器加到了解决post乱码过滤器的上面,就出现乱码,放到下面就没有乱码了。可能执行有先后顺序?我也不太清楚。
<!-- 解决post乱码 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 浏览器form表单只支持get和post请求,而delete和put请求并不支持。HiddenHttpMethodFilter是spring中自带的一个过滤器,
可以将浏览器表单请求转换为标准的http请求,使它们支持get、post、delete、put请求。-->
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.改更新数据的时候不知道应该怎么改。改过之后不是报错就是更新功能失效。原因是:看下面的代码,原来是只有第三行的代码,如果把第三行代码改成第二行的,更新功能就会失效,因为如果去掉第三行id传不进去,自然就不会成功,没有第二行程序也会报错。我之前以为只能有一个隐藏字段,尝试又加了一个隐藏字段,就可以正常运行了。说明是可以加多个隐藏字段的。
<form id="updateForm" action="${pageContext.request.contextPath}/user/update" method="post">
<input type="hidden" name="_method" value="PUT">
<input type="hidden" value="${user.id}" name="id"/>
<table align="center" bgcolor="lightgrey" border="1" cellpadding="0">
Hidden
<input type="hidden" /> 定义隐藏字段。隐藏字段对于用户是不可见的。隐藏字段通常会存储一个默认值,它们的值也可以由 JavaScript 进行修改。
3.还是没搞懂步骤三怎么操作,明天再看看吧。
收获:
1.什么是假数据?
当我们做好了客户端的开发,为了从服务器获取数据,就要从后台调用接口进行json解析。由于没有数据库,但还是要测试的时候,就需要假数据来实现这部分的功能。
2.什么是Jetty?
Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。
3.Json练习
评论