之前我们进行了Spring mvc的配置,现在我们通过小案例来了解下如何使用。
我们先写一个测试用的登录界面login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录界面</title>
</head>
<body>
<div id="msg"><font color="red">${message}</font></div>
<form id="loginform" method="post" name="loginform" action="login.do?main">
用户名:<input type="text" id="userName" name="userName"/><p/>
密 码:<input type="password" id="password" name="password"/><p/>
<input name="submit" type="submit" value="登录" />
<input type="reset" name="reset" value="重置" onclick="document.getElementById('userName').focus();"/>
<!-- 此方法 重置后定位到用户名框 -->
</form>
还没有账号?<a target="_self" href="register.jsp">点击注册</a>
</body>
</html>
这里的注册我们之后会用到,但是与此篇内容无关
然后我们需要一个model对象来封装我们的数据
package com.ys.model;
public class User {
private int id;
private String userName;
private String password;
//这里添加setter和getter方法代码,由于篇幅问题就跳过了
}
然后我们需要有对这个login访问的处理类LoginController.java
package com.ys.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.ys.model.User;
@Controller
@RequestMapping(value = "login") //匹配资源为login的path
public class LoginController {
/**
* 用户登录
*/
@RequestMapping(params = "main") //当参数是main的时候
public ModelAndView login(User user) {
ModelAndView modelView = new ModelAndView();
modelView.addObject("message", user.getId()+user.getUserName()+user.getPassword());
modelView.setViewName("/login");
return modelView;
}
}
这里我们可以看到jsp中action的参数对应了注解中的代码实现了匹配,调用了login方法
对于login方法中的user参数我们可以通过测试,在login.jsp中输入3333和11111显示
可见User对应jsp中的user获取输入的参数,标签中的name属性对应user类中的属性名称
0是由于jsp中没有对应id的标签,给int类型赋了初始值