spring mvc代码详解 三
来源:互联网 发布:淘宝的体验中心在哪里 编辑:程序博客网 时间:2024/05/22 01:37
之前写的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@Componentpublic 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 代码详解 一
- Spring mvc 代码详解 二
- Spring MVC学习(三)-------DispatcherServlet详解
- Spring MVC详解(三)DispatcherServlet作用
- Spring MVC详解(三)DispatcherServlet作用
- Spring MVC学习(三)-------DispatcherServlet详解
- Spring MVC配置(三)
- Spring MVC (三)
- spring mvc (三)
- 学习spring mvc 三
- Spring mvc+struts2+Hibernate整合实例代码(注解详解)
- spring MVC框架的配置流程(代码详解)
- Spring3 MVC详解三
- spring-mvc 详解
- spring-mvc 详解
- spring-mvc 详解
- Spring mvc详解
- (12)希尔排序
- 动态网页PHP程序员的优化调试技术和技巧
- 如何增加虚拟机ubuntu的硬盘
- 在FreeBSD用RRD监控网络流量
- 网络bbs详解
- spring mvc代码详解 三
- Oracle cursor的用法.
- Javascript style guide
- listview android:cacheColorHint,android:listSelector属性作用
- Spring中直接获取bean的工具类
- 双向实时远程同步文件(inotify+rsync与nfs)
- web前端安全编码(模版篇)
- WP开发心得分享:敏捷开发提升团队开发效率
- 黑客诡计