@RequestMapping和@RequestParam
这两个注解是用于将指定的请求参数赋值给方法中的形参
下面是实例:
User代码:
package org.fkit.controller;
import java.io.Serializable;
public class User implements Serializable {
//私有字段
private String loginname;
private String password;
private String username;
public String getLoginname() {
return loginname;
}
public void setLoginname(String loginname) {
this.loginname = loginname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
UserController代码:
package org.fkit.controller;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @author Administrator
* Controller注解用于知识该类是一个控制器,客户已处理多个工作
*/
@Controller
//RequestMapping可以用来注释一个控制器类,此时,所有方法都将映射为相对于类级别的请求
@RequestMapping
public class UserController {
//静态List<User>集合,此处代替数据库用来保存注册的用户信息
private static List<User> userList;
//UserController类的构造器,初始化Lis<User>集合
public UserController() {
super();
userList = new ArrayList();
}
//静态的日志类
private static final Log logger = LogFactory.getLog(UserController.class);
//该方法映射的请求为http://localhost:8080/RequestMappingTest/user/register,该方法支持GET请求
@RequestMapping(value="/register",method=RequestMethod.GET)
public String registerForm() {
logger.info("register GET方法被调用");
//跳转到注册页面
return "registerForm";
}
//该方法映射的请求为http://localhost:8080/RequestMappingTest/user/register,该方法支持POST请求
public String register(
@RequestParam("loginname") String loginname,
@RequestParam("password") String password,
@RequestParam("username") String username){
logger.info("register POST方法被调用...");
//创建User对象
User user = new User();
user.setLoginname(loginname);
user.setPassword(password);
user.setUsername(username);
//模拟数据库存储User信息
userList.add(user);
//跳转到登录页面
return "loginForm";
}
public String login(
//将请求中的loginname参数的值赋给loginname变量,password同样处理
@RequestParam("loginname") String loginname,
@RequestParam("password") String password,
Model model
){
logger.info("登录名:"+loginname+"密码:"+password);
//到集合中查找数据是否存在,遍历集合,此处模拟数据库造作
for(User user : userList){
if(user.getLoginname().equals(loginname) && user.getPassword().equals(password)){
model.addAttribute("user",user);
return "welcome";
}
}
return "loginForm";
}
}
jsp代码:
registerForm
<%@ page language="java" import="java.util.*" contentType="text/html; charset=GB2312" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<h3>注册界面</h3>
<br>
<form action="register" method="post"></form>
<table>
<tr>
<td><label>登录名:</label></td>
<td><input type="text" id="loginnname" name="loginname"></td>
</tr>
<tr>
<td><label>密码:</label></td>
<td><input type="password" id="password" name="password"></td>
</tr>
<tr>
<td><label>真是姓名:</label></td>
<td><input type="text" id="username" name="username"></td>
</tr>
<tr>
<td><input id="submit" tyme="submit" value="注册"></td>
</tr>
</table>
</body>
</html>
loginForm
<%@ page language="java" import="java.util.*" contentType="text/html; charset=GB2312" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<h3>注册界面</h3>
<br>
<form action="login" method="post"></form>
<table>
<tr>
<td><label>登录名:</label></td>
<td><input type="text" id="loginnname" name="loginname"></td>
</tr>
<tr>
<td><label>密码:</label></td>
<td><input type="password" id="password" name="password"></td>
</tr>
<tr>
<td><input id="submit" tyme="submit" value="登录"></td>
</tr>
</table>
</body>
</html>
后面还要自己配置前端控制器和web.xml,这个这可以看看我写的SpringMVC文章,文章地址http://blog.csdn.net/ysfcsdn2016/article/details/74320455