web项目总结-----1

1. 欢迎来到首页

跳转到list Servlet ,使用的绝对路径

2. UserController 里面:

@RequestMapping("/list")  // 使用的绝对路径 
    public String listUsers(Model model) {

        Collection list = service.listUser();

        model.addAttribute("list", list);  // 请求转发配置参数

        return "list";   // 跳转到 list.jsp 页面
    }

3. var 跟 varStatus 的区别:

var指向当前值
varStatus可以获得与当前索引相关的一些信息:
如varStatus=’status’ 则可以用${status.index}获得当前元素在集合中的索引

变量状态参数,该属性有5个常用值:
count 表示当前遍历集合的元素个数
index 表示当前遍历到集合的第几个元素
current 表示当前的集合元素
first 表示集合的第一个元素
last 表示集合的最后一个元素

`   forEach items="${list}" var="user" varStatus="index">   
    forEach>`

4. 关于 a 标签跳转:

是一个相对路径,相对于 WebContent ,如果你的 jsp 是直接写在WebContent 包下,可以直接写 update.jsp;如果你是写在 WebContent 文件夹下的 view 包下,则需要在前面加上 ” view/ ” 路径

img 标签同 a 标签,也是相对于 WebContent 文件夹

''>修改头像

class="image" alt="头像" src="view/upload/${user.image }">

5. hidden 关键字

type="hidden" name="id" value="${param.id}">   // input 标签传递隐形参数

6. UserMapping 上面写 SQL 语句:

parameterTyper 参数类型
resultType 返回值类型 , 如果返回值是多个类型,封装成对象 使用resultMap

    id="update" parameterType="user">
        update user
        set
        image =
        #{image}
        where id = #{id}
    
    <delete id="deleteByPrimaryKey">  // delete from user where id = ? or id= ? or id=?;
        delete from user
        
            "array" item="item" separator="," open="id in ("
                close=")">
                #{item}
            
        
    delete>

7. jsp 中传递参数到 servlet 中,参数名要与 Controller 中的参数名对应。

8.

请求转发:
// return "redirect:/view/welcome.jsp";     重定向
        // return "forward:register";       请求转发,携带参数
    @RequestMapping("/list")
    public String listUsers(Model model) {

        Collection list = service.listUser();

        model.addAttribute("list", list);    // 携带的参数

        return "list";       // 请求转发
    }
重定向:到 list.jsp
    @RequestMapping("/delete")
    public String delete(Long ...ids) {

        service.deleteByPrimaryKey(ids);
        return "redirect:/list";
    }

更新图片 :

    @RequestMapping("/update")
    public String update(Long id,MultipartFile image,HttpServletRequest request) {

        // 上传的图片不会使用原始的名字,需要重新命名一个唯一的名字
        // 防止多个用户上传名字相同内容不同的图片,导致覆盖,只保存了一张的情况
        // 名字: 时间戳,内容dm5 后的字符串,UUID 

        String imageName = String.valueOf(new Date().getTime());  // 时间戳作为文件名
        String path = request.getServletContext().getRealPath("/")+ "view/upload/" + imageName;   //  获取当前服务器所在的 tomcat 上的 绝对路径 ,拼接成 要获取图片的完整路径 

        File file = new File(path);    // 在此路径上 new 出一个文件,空的

        System.out.println("id = "+ id);

        try {

            image.transferTo(file);   // 把我们上传到服务器的文件 transferTo new出来的那个文件

            User user = new User();
            user.setId(id);
            user.setImage(imageName);
            service.update(user);

        } catch (IllegalStateException | IOException e) {
            e.printStackTrace();
        }
        return "redirect:/list";
    }

11 . 注解的使用:

1.
@Repository
public interface UserDao  // dao接口用 Repository (仓库)
2.
@Service            // serviceImplService
public class UserServiceImpl implements UserService{
3.
@Autowired 
private UserDao dao;  // 获取 UserDao dao = new UserDaoImpl();   dao 的实现类
4. 
@Controller
public class UserController{}  // 注册 UserController 类用 Controller
5.
@RequestMapping("/list")
public String listUsers(Model model) {}  // Controller 中的方法用 RequestMapping 注解,相当于一个ListServlet  用来处理jsp中传递的数据
6.JUnit 上面的注解
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:spring/spring-dao.xml","classpath:spring/spring-service.xml"})

web项目总结-----1_第1张图片

你可能感兴趣的:(学习笔记,SpringMVC)