SpringMVC的其他功能使用
一、SpringMVC支持在控制器的业务方法中写入参数作为传递过来的变量
@Controller
@RequestMapping(value="/kaiye")
public class HelloHAE{ @RequestMapping(value="/hello.action")
public String hello(Model model,String name,double number){
model.addAttribute("Message",name+"|"+String.valueOf(number));
return "success";
}
}
二、SpringMVC支持限定某个业务控制方法,只允许GET或POST请求方式访问
@Controller
@RequestMapping(value="/kaiye")
public class HelloHAE{ @RequestMapping(method={RequestMethod.POST,RequestMethod.GET},value="/hello.action")
public String hello(Model model){
model.addAttribute("Message","hello");
return "success";
} @RequestMapping(method=RequestMethod.GET,value="/goodbye.action")
public String goodbye(Model model){
model.addAttribute("Message","goodbye");
return "success";
}
}
三、SpringMVC支持在业务控制方法中写入Request,Response等传统web参数
package com.jyk.springmvc.httpRequestResponse; import java.io.IOException;
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.RequestMethod;
import org.springframework.web.servlet.support.RequestContext; /**
* SpringMVC支持web传统方式httpRequest和httpResponse获取参数(建议用model)
* 也支持void类型的业务方法
* @author fat
*/
@Controller
@RequestMapping(value="/kaiye")
public class HelloHAE{ @RequestMapping(method={RequestMethod.POST,RequestMethod.GET},value="/hello.action")
public void hello(HttpServletRequest request,HttpServletResponse response) throws IOException{
String name = request.getParameter("name");
String number = request.getParameter("number");
System.out.println(name+":"+number); //绑定到session域中
request.getSession().setAttribute("name",name);
request.getSession().setAttribute("number",number); //页面重定向
response.sendRedirect(request.getContextPath()+"/success.jsp");
}
}
四、在默认情况下,springmvc不能将String类型转成java.util.Date类型,需要使用@InitBind来解决字符串转日期类型,同时支持在参数中传递多个实体类,如下代码中Bean对象包含了Person和Animal对象
/**
* 日期格式转换,和多个实体类型接收参数
* @author fat
*/
@Controller
@RequestMapping(value="/kaiye")
public class HelloHAE{ /**
* 自定义类型转换器
* @param request
* @param binder
* @throws Exception
*/
@InitBinder
protected void initBinder(HttpServletRequest request,ServletRequestDataBinder binder)
throws Exception{
binder.registerCustomEditor(Date.class, new CustomDateEditor
(new SimpleDateFormat("yyyy-MM-dd"), true));
} @RequestMapping(value="/hello.action")
public String hello(Model model,Person person){
System.out.println(person.toString());
model.addAttribute("person",person);
return "success";
} /**
* 参数中传多个实体类时
* @param model
* @param person
* @return
*/
@RequestMapping(value="/entities.action")
public String entitiesTest(Model model,Bean bean){
System.out.println(bean.getPerson());
System.out.println(bean.getAnimal());
model.addAttribute("person",bean.getPerson());
model.addAttribute("animal",bean.getAnimal());
return "success";
}
}
五、SpringMVC支持在业务控制方法中收集数组参数
<form action="${pageContext.request.contextPath}/kaiye/array.action" method="post">
<table border="1" align="center">
<tr>
<th>名字</th>
<td><input type="checkbox" name="ids" value="1"/></td>
</tr>
<tr>
<th>学号</th>
<td><input type="checkbox" name="ids" value="2"/></td>
</tr>
<tr>
<th>日期</th>
<td><input type="checkbox" name="ids" value="3"/></td>
</tr>
<tr>
<td>
<input type="submit" value="009测试"/>
</td>
</tr>
</table>
</form>
@Controller
@RequestMapping(value="/kaiye")
public class HelloHAE{ @RequestMapping(value="/array.action")
public String hello(Model model,int ids[]){
for(int i:ids){
System.out.println(i);
}
return "success";
}
}
六、SpringMVC支持在业务控制方法中收集List<JavaBean>参数
<form action="${pageContext.request.contextPath}/kaiye/beanList.action" method="post">
<table border="1" align="center">
<tr>
<td><input type="checkbox" name="persons[0].name" value="名字1"/></td>
<td><input type="checkbox" name="persons[0].number" value="编号1"/></td>
</tr>
<tr>
<td><input type="checkbox" name="persons[1].name" value="名字2"/></td>
<td><input type="checkbox" name="persons[1].number" value="编号2"/></td>
</tr>
<tr>
<td>
<input type="submit" value="010测试"/>
</td>
</tr>
</table>
</form>
public class Bean {
private List<Person> persons = new ArrayList<Person>();
public List<Person> getPersons() {
return persons;
}
public void setPersons(List<Person> persons) {
this.persons = persons;
}
}
@Controller
@RequestMapping(value="/kaiye")
public class HelloHAE{ @RequestMapping(value="/beanList.action")
public String beanList(Model model,Bean bean){
System.out.println(bean.getPersons());
return "success";
}
}
七、SpringMVC支持结果的转发和重定向,在转发情况下,共享request域对象,会将参数从第一个业务控制方法传入第二个业务控制方法
/**
* 重定向共享参数
* @author fat
*/
@Controller
@RequestMapping(value="/kaiye")
public class HelloHAE{ @RequestMapping(value="/hello.action")
public String hello(Model model,String name){
System.out.println("hello "+name);
return "forward:/kaiye/goodbye.action";
} @RequestMapping(value="/goodbye.action")
public String goodbye(Model model,String name){
System.out.println("goodbye "+name);
return "success";
}
}
八、SpringMVC支持异步发送表单数据到JavaBean,并响应JSON文本返回
<h3>013测试</h3>
<input type="button" value="person转json">
<input type="button" value="persons转json">
<input type="button" value="map转json">
<script type="text/javascript">
$(":button:first").click(function(){
var url = "${pageContext.request.contextPath}/kaiye/hello.action";
var sendData = null;
$.post(url,sendData,function(backData,textStatu,ajax){
alert(ajax.responseText);
})
});
$(":button:eq(1)").click(function(){
var url = "${pageContext.request.contextPath}/kaiye/hellos.action";
var sendData = null;
$.post(url,sendData,function(backData,textStatu,ajax){
alert(ajax.responseText);
})
});
$(":button:eq(2)").click(function(){
var url = "${pageContext.request.contextPath}/kaiye/hellomap.action";
var sendData = null;
$.post(url,sendData,function(backData,textStatu,ajax){
alert(ajax.responseText);
})
});
</script>
/**
* 将实体对象以Json的格式返回
* @author fat
*/
@Controller
@RequestMapping(value="/kaiye")
public class HelloHAE{ @RequestMapping(value="/hello")
public @ResponseBody Person hello(){
return new Person("kaiye","呵呵","12");
} @RequestMapping(value="/hellos")
public @ResponseBody List<Person> hellos(){
List<Person> persons = new ArrayList<Person>();
persons.add(new Person("狗","1","33"));
persons.add(new Person("猫","2","44"));
return persons;
} @RequestMapping(value="/hellomap.action")
public @ResponseBody Map<String,Object> hellomap(){
Map<String,Object> map = new HashMap<String,Object>();
map.put("age",1);
map.put("name","你好");
return map;
}
}
SpringMVC的其他功能使用的更多相关文章
- Intellij IDEA +MAVEN+Jetty实现SpringMVC简单查询功能
利用 Intellij IDEA +MAVEN+Jetty实现SpringMVC读取数据库数据并显示在页面上的简单功能 1 新建maven项目,配置pom.xml <project xmlns= ...
- 解决springmvc中文件下载功能中使用javax.servlet.ServletOutputStream out = response.getOutputStream();后运行出异常但结果正确的问题
问题描述: 在springmvc中实现文件下载功能一般都会使用javax.servlet.ServletOutputStream out = response.getOutputStream();封装 ...
- springMVC中一些功能
1.controller的生命周期 spring框架默认为单例模式,会使数据之间的传递互相影响,而springMVC给我们提供了request与session两个,request每次请求就会产生一个单 ...
- SpringMVC实现查询功能
1 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=&qu ...
- SpringMVC记住密码功能
CookieTool (Cookie帮助类): package com.utcsoft.common.cookie; import java.util.HashMap; import java.uti ...
- SpringMVC操作指南-登录功能与请求过滤
[1] Source http://code.taobao.org/p/LearningJavaEE/src/LearningSpringMVC005%20-%20Login%20and%20Filt ...
- SpringMVC的删除功能
Dao层 package net.roseindia.dao; import java.util.Date; import java.util.List; import net.roseindia.m ...
- SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)【转】
使用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录SSM整合 ...
- spring+springmvc+mybatis xml配置文件
一.jdbc.properties 文件: driver=com.mysql.jdbc.Driverurl=jdbc:mysql://192.168.31.xxx:3306/abc?useUnicod ...
随机推荐
- 回文树(回文自动机) - BZOJ 3676 回文串
BZOJ 3676 回文串 Problem's Link: http://www.lydsy.com/JudgeOnline/problem.php?id=3676 Mean: 略 analyse: ...
- Linux 高频工具快速教程
全书分为三个部分: 第一部分为基础篇,介绍我们工作中常用的工具的高频用法: 第二部分为进阶篇,介绍的工具更多的适合程序员使用,分为程序构建.程序调试及程序优化: 第三部分是工具参考篇,主要介绍实用工具 ...
- iScroll框架的使用和修改
iScroll 的诞生是因为手机 Webkit 浏览器(iPhone.iPod.Android 和 Pre)本身没有为固定宽度和高度的元素提供滚动内容的方法.这导致了很多网页使用 position:a ...
- php -- strpos,stripos,strrpos,strripos,strstr,strchr,stristr,strrchr
strpos() 函数 语法: mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) 查找 needle 在 h ...
- SpringCloud服务发现(Eureka)简介
Eureka是Netflix开发的服务发现框架,SpringCloud将它集成在自己的子项目spring-cloud-netflix中,实现SpringCloud的服务发现功能. 为什么要使用Eure ...
- Mac 文件读写权限问题 OSError: Operation not permitted
Mac在OS X 10.11以后加入了Rootless功能,主要是限制了root权限,阻止用户对部分路径下的目录进行更改.受到限制的有以下目录: /System /bin /sbin /usr (ex ...
- 【mysql-python】安装+基本使用
安装:从SourceForge.net上下载最新的MySQLdb,http://sourceforge.net/projects/mysql-python/ 运行exe文件 使用 From:http: ...
- SqlAlchemy使用详解
python之sqlalchemy创建表的实例详解 通过sqlalchemy创建表需要三要素:引擎,基类,元素 from sqlalchemy import create_engine from sq ...
- 简单配置Nginx 指向本地端口,并开启SSL
简单配置Nginx 指向本地端口,并开启SSL,如果要开启SSL,必须使用域名去申请SSL key,一般是两个文件,一般是要收费的. # 在/etc/nginx/nginx.conf 的文件中有下面一 ...
- android APP上线前,应该准备的东西
这里给出一些主流的应用市场名单,有些可能已经不行了,自己找一找,很容易的: 应用市场图-1