Spring 2.5:Spring MVC中的新特性
public class ClinicController {
private final Clinic clinic;
@Autowired
public ClinicController(Clinic clinic) {
this.clinic = clinic;
}
...
ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse
response) throws Exception;
}
- 不需要任何接口或者基类。
- 允许有任意数量的请求处理方法。
- 在方法签名上具有高度的灵活性。
public class AccountsController {
private AccountRepository accountRepository;
@Autowired
public AccountsController(AccountRepository accountRepository) {
this.accountRepository = accountRepository;
}
@RequestMapping("/accounts/show")
public ModelAndView show(HttpServletRequest request,
HttpServletResponse response) throws Exception {
String number = ServletRequestUtils.getStringParameter(request, "number");
ModelAndView mav = new ModelAndView("/WEB-INF/views/accounts/show.jsp");
mav.addObject("account", accountRepository.findAccount(number));
return mav;
}
}
/accounts/show.xls
/accounts/show.pdf
...
public String show(HttpServletRequest request, Map<String, Object> model)
throws Exception {
String number = ServletRequestUtils.getStringParameter(request, "number");
model.put("account", accountRepository.findAccount(number));
return "/WEB-INF/views/accounts/show.jsp";
}
public void show(HttpServletRequest request, Map<String, Object> model) throws Exception {
String number = ServletRequestUtils.getStringParameter(request, "number");
model.put("account", accountRepository.findAccount(number));
}
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
public void show(@RequestParam("number") String number, Map<String, Object> model) {
model.put("account", accountRepository.findAccount(number));
}
@RequestParam("id") Long id
@RequestParam("balance") double balance
@RequestParam double amount
@RequestMapping(value="index", method=RequestMethod.GET, params="type=checking")
@RequestMapping
@RequestMapping("/accounts/*")
public class AccountsController {
@RequestMapping(method=RequestMethod.GET)
public void show(@RequestParam("number") String number, Map<String, Object> model)
{
model.put("account", accountRepository.findAccount(number));
}
...
public class AccountsController {
private AccountRepository accountRepository;
@Autowired
public AccountsController(AccountRepository accountRepository) {
this.accountRepository = accountRepository;
}
@RequestMapping(method=RequestMethod.GET)
public void show(@RequestParam("number") String number, Map<String, Object> model)
{
model.put("account", accountRepository.findAccount(number));
}
...
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
public Account setupForm() {
...
}
@RequestMapping(method=RequestMethod.POST)
public void onSubmit(Account account) {
...
}
...
</form>
public @ModelAttribute("account") SpecialAccount setupForm() {
...
}
@RequestMapping(method=RequestMethod.POST)
public void update(@ModelAttribute("account") SpecialAccount account) {
...
}
public Account setupModelAttribute() {
...
}
@SessionAttributes("account")
public class AccountFormController {
...
}
@Controller
@SessionAttributes(types = Account.class)
public class AccountFormController {
...
}
public void onSubmit(Account account, SessionStatus sessionStatus) {
...
sessionStatus.setComplete(); // Clears @SessionAttributes
}
public void initDataBinder(WebDataBinder binder) {
binder.setRequiredFields(new String[] {"number", "name"});
}
public ModelAndView onSubmit(Account account, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
ModelAndView mav = new ModelAndView();
mav.getModel().putAll(bindingResult.getModel());
return mav;
}
// Save the changes and redirect to the next view...
}
public ModelAndView onSubmit(Account account, BindingResult bindingResult) {
accountValidator.validate(account, bindingResult);
if (bindingResult.hasErrors()) {
ModelAndView mav = new ModelAndView();
mav.getModel().putAll(bindingResult.getModel());
return mav;
}
// Save the changes and redirect to the next view...
}
转载于:https://blog.51cto.com/tonyaction/190071
Spring 2.5:Spring MVC中的新特性相关推荐
- iOS7 中的新特性
iOS7 中的新特性 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳 ...
- iOS 各版本中的新特性(What's New in iOS)- 目录翻译完成
iOS 各版本中的新特性(What's New in iOS) 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致&q ...
- 返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API
返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API 原文:返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 ...
- php v5.,PHP V5.3 中的新特性,第 5 部分- 从 PHP V5.2 升级到 PHP V5.3
PHP V5.3 中的新特性,第 5 部分: 从PHP V5.2 升级到 PHP V5.3 1 2 3 4 5 下一页 PHP V5.3 将于不久后发布."PHP V5.3 中的新特性&qu ...
- Entity Framework 4.3 中的新特性
原文地址:http://www.cnblogs.com/supercpp/archive/2012/02/20/2354751.html EF4.3于2月9号正式发布了,微软的EF小组最近一年开始发力 ...
- JDK 8 中的新特性
目录 JDK 8 中的新特性 JDK 8 中的新特性 JDK 版本说明 JDK 8 版本说明 Java Platform, Standard Edition 8 是一个拥有丰富特性的主要版本.本文档总 ...
- Spring 4.x框架中的新特性---Spring4.0框架的新功能和改善
2004年Spring框架首次发布,然后陆续发布了一些重要的版本:Spring2.0提供XML命名空间和AspectJ的支持:Spring2.5包含了注释驱动配置:Spring3.0在框架基础代码中引 ...
- Spring Boot2.1.5(2)---2.x 新特性
Spring Boot 官网在 2019/05/15 这天发布了 Spring Boot 2.1.5 正式版. Spring Boot 2.1.5 新特性: 1.增加了 Spring Session ...
- Spring 6.0 堪称最强!新特性,惊爆了!
出品 | OSC开源社区(ID:oschina2013) Spring 6.0 发布了首个 RC 版 公告写道,Spring Framework 6.0 作为重大更新 目前 RC1 要求使用 Java ...
最新文章
- 目前流行的源程序版本管理软件和项目管理软件都有哪些?各有什么优缺点?...
- 太炫酷了!逼格高的键盘敲代码贼爽!包邮送到家!
- wamp测试mysql_Wamp 配置及测试
- 前端笔记-StackedBar3D的初步修改(添加legend等)
- 大数据学习笔记01:大数据概述
- HTML5超级玛丽简易版(有源码)
- 移动数据库 Realm 在 React-Native 的使用详解
- 20210916:Verilog的整数类型易错点
- python 网络请求类库 requests 使用
- 【java学习之路】(java框架)008.JdbcTemplate
- HDU2999 Stone Game, Why are you always there?【SG函数】
- Java基础语法总结(全)
- SM2258XT量产工具教程,SM2258XT_Q0816A+B05 B16 B17的正确开卡步骤
- vc sp5 补丁下载地址
- 无穷级数求和7个公式_Excel技能:职场必备的三个SUM函数、10个求和公式
- 如何理解客户需求,市场需求,业务需求,功能需求,产品需求,设计需求?
- iOS -- 播放本地音频文件 (Swift)
- LINQ的Order By (Descending) 操作
- 【日常学习】使用anaconda管理环境并安装cuda和cudnn和tensorflow
- 物联网:断点续传策略及流程图
热门文章
- mysql 内存引擎_MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)
- jsp中 input placeholder_前端工作中的方法总结
- $cfg_dbtype = mysql_Druid连接池二(学习笔记)
- 表达式类型的实现数据结构_Redis系列(九)底层数据结构之五种基础数据类型的实现...
- python中类的嵌套_python中的嵌套类 | 学步园
- 大规模的服务器如何管理--批量管理工具
- Linux命令行性能检测工具
- VS2010属性表的建立与灵活运用
- push的时候 出现卡顿现象
- 当Android工程中提示你找不到头文件,但你已经设置头文件路径了