Spring3 MVC Annotaction入门(登录示例)
浏览资料
1 SpringMVC入门实例及详细讲解
http://javacrazyer.iteye.com/blog/790834
2 Spring mvc 实例--使用velocity视图,解决中文乱码问题
http://blog.csdn.net/sabuhaha/archive/2009/08/25/4483271.aspx
3 SpringMVC整合FreeMarker中文乱码解决方案
http://www.easyjf.com/blog/html/20071218/884747.html
4 使用 Spring 2.5 基于注解驱动的 Spring MVC
http://www.ibm.com/developerworks/cn/java/j-lo-spring25-mvc/
一 开发工具环境:Myeclipse6.6+Tomcat7+JDK1.6
所用jar文件:
二 示例代码如下:
WEB控制层
import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import net.liuzd.vo.User;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.servlet.ModelAndView;@Controller@RequestMapping("/user.do")public class UserController {@SuppressWarnings("unchecked")@RequestMapping(params = "method=add")public String login(@ModelAttribute("user")User user, HttpServletRequest req, HttpServletResponse response) {// 此处调用服务层进行相应的业务操作System.out.println("用户信息: " + user);// 传递对象于下一页面req.setAttribute("user", user);// 调用服务层进行验证用户,此处只演示功能if ("spring".equals(user.getUserId())&& "spring".equals(user.getUserPassword())) {return "success";}return "error";}@SuppressWarnings("unchecked")// @RequestMapping(params= "method=add2",method=RequestMethod.POST)// 定义method方法不是必须的@RequestMapping(params = "method=add2")public ModelAndView login2(@ModelAttribute("user")User user, HttpServletRequest req, HttpServletResponse response) {// 此处调用服务层进行相应的业务操作System.out.println("用户信息2: " + user);// 使用ModelAndView保存对象于下一页面ModelAndView model = new ModelAndView();model.addObject("user", user);// 调用服务层进行验证用户,此处只演示功能if ("spring".equals(user.getUserId())&& "spring".equals(user.getUserPassword())) {model.setViewName("success");} else {model.setViewName("error");}return model;}@RequestMapping(params = "method=add3")public String login3(@ModelAttribute("user")User user,Model model) {model.addAttribute("user",user); System.out.println("用户信息3: "+user);// 调用服务层进行验证用户,此处只演示功能if ("spring".equals(user.getUserId())&& "spring".equals(user.getUserPassword())) {return "success";}//放入model默认把参数存于请求model.addAttribute("msg","用户或者密码错误!"); return "error";/** * 重定向JSP页面,走出了springmvc配置的view(jsp) * 因为这样说明:model.addAttribute("msg","用户或者密码错误!"); * 获取不到值了 * 不加上.jsp就是这样:http://127.0.0.1:8080/Spring3-Login-Annotaction/index?msg=%E7... * *///返回到页面是乱码在页面中用${msg}获取不到值,用request.getParams("msg");为乱码//return "redirect:index.jsp?msg=用户或者密码错误!";}}<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%><form action="${pageContext.request.contextPath}/user.do?method=add" method="post"> ID号: <input type="text" name="userId" id="userId"><br> 密码: <input type="password" name="userPassword" id="userPassword"><br> <input type="submit" value="Login"> </form> <br> <form action="${pageContext.request.contextPath}/user.do?method=add2" method="post"> ID号: <input type="text" name="userId" id="userId"><br> 密码: <input type="password" name="userPassword" id="userPassword"><br> <input type="submit" value="Login2"> </form> <br> <form action="${pageContext.request.contextPath}/user.do?method=add3" method="post"> ID号: <input type="text" name="userId" id="userId"><br> 密码: <input type="password" name="userPassword" id="userPassword"><br> <input type="submit" value="Login3"> </form> 欢迎你: ${user.userId}<br> <a href="${pageContext.request.contextPath}/index.jsp">返回</a>登录错误:ID号: ${user.userId},密码: ${user.userPassword},<font color='red'>${msg}</font><br><a href="${pageContext.request.contextPath}/index.jsp">返回</a><?xml version="1.0" encoding="UTF-8" ?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 自动搜索@Controller标注的类 用于指明系统从哪个路径下寻找controller,然后提前初始化这些对象。 --><context:component-scan base-package="net.liuzd.web.action" /><!-- Default ViewResolver --><bean id="viewResolver"/><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp"></property></bean> </beans>
<filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param> <param-name>forceEncoding</param-name> <param-value>false</param-value> </init-param> </filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>*.do</url-pattern></filter-mapping><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>*.jsp</url-pattern></filter-mapping><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><!-- 指定XML文件位置 <param-value>/WEB-INF/classes/springmvc.xml <param-value>classpath*:springmvc.xml --> <!-- 在classpath路径下去寻找springmvc.xml文件 --> <param-value>classpath:springmvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>