springmvc-annotation注解式开发(表单封装)
来源:互联网 发布:淘宝上买steam游戏商家 编辑:程序博客网 时间:2024/05/20 16:12
实现功能:登录页面并跳转。
程序遇到的问题:表单登录中文乱码问题,显示参数问题
注解:
@Component
@Service:Service层
@Repository:Dao
@Controller:springmvc处理器上
配置文件注册需要Context约束,aop jar包,处理器不再需要Controller接口或者继承相关类。
com.springsource.org.apache.commons.logging-1.1.1.jar
com.springsource.org.apache.log4j-1.2.15.jar
spring-aop-4.3.6.RELEASE.jar
spring-beans-4.3.6.RELEASE.jar
spring-context-4.3.6.RELEASE.jar
spring-context-support-4.3.6.RELEASE.jar
spring-core-4.3.6.RELEASE.jar
spring-expression-4.3.6.RELEASE.jar
spring-web-4.3.6.RELEASE.jar
spring-webmvc-4.3.6.RELEASE.jar
1.定义beans类,为登录页面做准备
package com.abc.beans;
public class Student {
private String name;
private int age;
private School school;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public School getSchool() {
return school;
}
public void setSchool(School school) {
this.school = school;
}
public Student(String name, int age, School school) {
super();
this.name = name;
this.age = age;
this.school = school;
}
public Student() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + ", school=" + school + "]";
}
}
package com.abc.beans;
public class School {
private String sname;
private String schoolAddress;
public School() {
super();
// TODO Auto-generated constructor stub
}
public School(String sname, String schoolAddress) {
super();
this.sname = sname;
this.schoolAddress = schoolAddress;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getSchoolAddress() {
return schoolAddress;
}
public void setSchoolAddress(String schoolAddress) {
this.schoolAddress = schoolAddress;
}
@Override
public String toString() {
return "School [sname=" + sname + ", schoolAddress=" + schoolAddress + "]";
}
}
2.完成index.jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/some/sixth.do" method="POST">
姓名<input type="text" name="name"/><br>
年龄<input type="text" name="age"/><br>
学校<input type="text" name="school.sname" /><br>
校址<input type="text" name="school.schoolAddress" /><br>
<input type="submit" value="提交"/>
</form>
</body>
</html>
3.定义handlers完成注解是开发;
package com.abc.handlers;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.abc.beans.Student;
@Controller //处理器
@RequestMapping("/some") //请求体参数前加了some路径
public class SomeHandler {
@RequestMapping("/first.do")
public ModelAndView doFirst(HttpServletRequest request, HttpServletResponse response) {
ModelAndView mv= new ModelAndView();
mv.addObject("message","hello SpringMvc");
//相当于request.setAttribute("message", "heloomvc");
mv.setViewName("/WEB-INF/jsp/welcome.jsp");
return mv;
}
@RequestMapping("/second.do")
public ModelAndView doSecond(String name,int age, Map<String, Object> map) {
map.put("name", name);
map.put("age", age);
return new ModelAndView("/WEB-INF/jsp/welcome.jsp");
}
//@RequestParam用于校正参数
@RequestMapping("/third.do")
public ModelAndView doThird(@RequestParam Map<String, Object> map, HttpServletRequest request) {
String name = (String) map.get("name");
String age = (String) map.get("age");
request.setAttribute("name", name);
request.setAttribute("age", age);
return new ModelAndView("/WEB-INF/jsp/welcome.jsp");
}
@RequestMapping("/fifth.do")
public ModelAndView doFifth(Student student) {
return new ModelAndView("/WEB-INF/jsp/welcome.jsp");
}
@RequestMapping("/sixth.do")
public ModelAndView doSixth(Student student) { 要实现的目标方法
return new ModelAndView("/WEB-INF/jsp/welcome.jsp");
}
}
4.welcome.jsp跳转页面 实现显示请求参数功能
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
welcome page <br>
${message} <br>
${requestScope.message}<br>
<hr> jsp 之所以能显示出来,他能满足el表达式四大域中的requestScope
${name }<br>
${age }<br>
${requestScope.student }<br>
</body>
</html>
5.注册注解扫描器
<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 注册组件扫描器 -->
<context:component-scan base-package="com.abc.handlers"/>
</beans>
6.解决中文乱码问题,在web.xml修改配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<filter >
<filter-name>CharacterEncodingFilter</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>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</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>
<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>
</web-app>
- springmvc-annotation注解式开发(表单封装)
- SpringMVC学习(2):注解(annotation)开发及form表单数据封装
- SpringMVC annotation注解版helloworld
- springMVC基于注解(annotation)的Hello world
- springmvc+spring+hibernate 整合 annotation(全注解)方式
- springMVC-注解开发(上)
- SpringMVC源码(九)SpringMVC注解开发
- JAVA注解(Annotation)的开发-2注解处理器
- SpringMVC的四个基本注解annotation
- SpringMVC注解-org.springframework.web.bind.annotation
- SpringMVC的四个基本注解annotation
- 注解(Annotation)--注解处理器
- 注解(Annotation)自定义注解
- 注解(Annotation)--注解处理器
- 注解(Annotation)--注解处理器
- springMVC学习(三)表单提交之数据封装
- JAVA 注解(annotation)
- 注解(Annotation)
- websocket断开重连解决方案,基于子慕大诗人博客修改 健壮强化版
- sklearn 精确率、召回率
- 我是被淘宝给气到了,不在使用这个玩意,泄露我的信息
- Java—API
- WebSocket connection to 'ws://localhost/aa/ws1' net::ERR_CONNECTION_REFUSED
- springmvc-annotation注解式开发(表单封装)
- 配置Java环境
- 使用Ynm3k的iosMonkey脚本测试iOS应用的稳定性
- Spring框架中的设计模式(五)
- 限流模式-Guava的RateLimiter
- Coursera Machine Learning 第二周编程全套满分题目+注释 ex1+ex1_multi(包括选做Optional)
- Centos6.5 下Docker的安装
- easyui中的tree的图标更改
- MFC 单例运行三种方式