spring mvc代码详解 三

之前写的spring代码详解一和二已经将数据层和业务层的代码写的差不多  今天 来编写项目的控制器

首先 我们创建CommonController 使用户打开我们项目  就处于登录页  代码如下:

package com.hoo.Controller;

import java.util.Map;

import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.portlet.ModelAndView;

@Controller
@Component
public class CommonController {
    @RequestMapping("/login")
    public ModelAndView login(){
        ModelAndView modelAndView=new ModelAndView("login");
        return modelAndView;
    }
}

@Controller代表这个类是一个控制器

 

 接着 我们创建 UserController 这里来处理登录页面的各种请求 代码如下:

package com.hoo.Controller; import java.util.List;

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;

import com.hoo.entity.UserDmo; import com.hoo.service.UserBiz; import com.hoo.util.DataUtil; import com.hoo.util.Message; import com.hoo.util.UserUtil; @Controller @Component //@RequestMapping它把web请求映射到特定的处理器类和/或处理器方法 //此处/user代表访问时要加上user这一层目录 //例如这个类中 首先我在类名称上加上了"/user" 然后我有在方法上加了"/add" 那么要想访问到addUser这个方法  则页面路径应该填写 http://ip:端口/项目名称/user/add.htm @RequestMapping("/user") public class UserController {     @Autowired     private UserBiz userBiz;     @RequestMapping("/add")     //@ResponseBody表示响应的主体。即不需要VIEW展现层模块,直接显示到客户端的内容     @ResponseBody     public Message addUser(UserDmo user,Model model){         user.setUid(UserUtil.getId());         user.setUserType(1);         user.setRegeditTime(DataUtil.getCurrentDate());         user.setRegerees("");                 try {             Object upass=userBiz.getUserByUname(user.getUname());             if(upass!=null&&upass.toString().trim().length()>0){                 //这里返回对象 页面就可以使用json来进行解析                 return  new Message(false, "当前注册的用户名已存在,用户注册失败");             }             userBiz.addUser(user);             return new Message(true, "用户注册成功");         } catch (Exception e) {             e.printStackTrace();             return  new Message(false, "程序出现错误,用户注册失败");            }     }     @RequestMapping("/login")     public @ResponseBody Message login(@ModelAttribute("user")UserDmo user,HttpSession session){         try {            UserDmo loginUser=userBiz.getUserByUname(user.getUname());             if(loginUser!=null&&loginUser.getUpass().toString().length()>0){                 if(loginUser.getUpass().toString().equals(user.getUpass())){                        user=loginUser;                     session.setAttribute("loginUser",user);                     return new Message(true, "登录成功");                 }             }         } catch (Exception e) {             e.printStackTrace();         }         return new Message(false, "登录失败");     }     @RequestMapping("/index")     public String getUserList(HttpServletRequest request){             List<UserDmo> userList=userBiz.getUserList();             request.setAttribute("userList", userList);             return "user/list";     } }

因为我们使用的json 所以需要在spring 的dispatcher中添加如下配置

<bean id="mappingJacksonHttpMessageConverter"
		class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
		<property name="supportedMediaTypes">
			<list>
				<value>text/html;charset=utf-8</value>
			</list>
		</property>
	</bean>

另外 还需要添加jackson-core-asl-1.9.2.jar和jackson-mapper-asl-1.9.2.jar这两个jar包

然后  我们在来创建登录页面 login.ftl 代码如下:

<!DOCTYPE html>
<!--STATUS OK-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>用户登录</title>
<script src="js/jquery.min.js"></script>
<script src="js/jquery.form.js" ></script>
<script>
$().ready(function(){	
		$('#login').click(function(){
			 $('#loginForm').ajaxSubmit({
				dataType:'json',
			    success:finishSubmit
			});
		});
		function finishSubmit(data){
		if(data.result){
			location.href("user/index.htm")
		}else{
			alert(data.msg);
		}
		}
	});
</script>
</head>
<body>
<form id="loginForm" method="post" action="user/login.htm">
<table border="0" align="center">
  <tr>
    <th colspan="2" scope="col">用户登录</th>
  </tr>
  <tr>
    <td>用户名:</td>
    <td>
      <input type="text" name="uname" />
    </td>
  </tr>
  <tr>
    <td>用户密码:</td>
    <td>
      <input type="password" name="upass" />
    </td>
  </tr>
  <tr align="center">
    <td colspan="2">
      <input id="login" type="button"  value="提交" />
      <input type="reset" value="重置" />
      </td>
  </tr>
</table>
</form> 
</body>
</html>

最后 我们在创建显示用户列表的页面 代码如下:

<!DOCTYPE html>
<!--STATUS OK-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>用户列表</title>
</head>
<body>
<table border="1" align="center" style="text-align:center">
  <tr>
    <th scope="col">编号</th>
    <th scope="col">用户名</th>
    <th scope="col">用户密码</th>
    <th scope="col">注册时间</th>
    <th scope="col">用户类型</th>
  </tr>
  <#list userList as user>
  <tr>
    <td>${user.uid}</td>
    <td>${user.uname}</td>
    <td>${user.upass}</td>
    <td>${user.regeditTime}</td>
    <td>${user.userType}</td>
  </tr>
   </#list>
</table>
</body>
</html>

至此 项目编写完毕。最后 附上项目的整体结构和项目的源代码。

《spring mvc代码详解 三》

 

 项目源码附上 大家自行下载(包含数据库):项目源码

 

 

    原文作者:Spring MVC
    原文地址: https://blog.csdn.net/biaohu_lanh/article/details/16856231
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞