mvc

七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递

℡╲_俬逩灬. 提交于 2019-12-04 06:07:45
通过第一天的学习之后,我们相信您已经对MVC有一些基本了解。 本节所讲的内容是在上节的基础之上,因此需要确保您是否掌握了上一节的内容。本章的目标是在今天学习结束时利用最佳实践解决方案创建一个小型的MVC项目,本节的主要目标是了解MVC之间的数据传递问题。我们会逐步深入讲解,并添加新功能,使项目越来越完善。 系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC Controller与 View之间的值传递 在上一节的实验二中已经创建了静态View。然而在实际使用情况下,View常用于显示动态数据。在实验三中们将在View中动态显示数据。 View将从从Controller获得Model中的数据。 Model是MVC中 表示业务数据的层。 实验3 ——使用View数据 ViewData相当于数据字典,包含Controlle和View之间传递的所有数据。Controller会在该字典中添加新数据项,View从字典中读取数据。 1. 创建Model 类 在Model文件夹下新建Employee类,如下。 1: public class Employee 2: 3: { 4: public string FirstName { get; set; } 5: 6: public string LastName { get; set; } 7: 8: public

Getting started with MVC(7)

℡╲_俬逩灬. 提交于 2019-12-03 23:57:12
MVC Security MVC has built-in some security features to protect pages, eg. CSRF protection. CSRF protection MVC has built-in CSRF protection, there is aCsrfinterface. ConfigureCsrfin theApplicationclass. Override thegetPropertiesmethod. @Override public Map<String, Object> getProperties() { Map<String, Object> props = new HashMap<>(); props.put(Csrf.CSRF_PROTECTION, Csrf.CsrfOptions.EXPLICIT); //view folder //props.put(ViewEngine.DEFAULT_VIEW_FOLDER, ViewEngine.VIEW_FOLDER); return super.getProperties(); } And there are some options to configure CSRF viaCsrf.CsrfOptions. OFF to disable Csrf.

spring mvc的表单类型转换(custom property editor)

大城市里の小女人 提交于 2019-12-03 21:02:00
spring mvc的表单类型转换太强大了,目前用到了两个简单的, 一个是将表单中的file自动映射成byte[],这样文件上传(如果使用blob)就无需写任何代码了。 另一个是将表单中的yyyy-MM-dd格式映射成java.util.Date, 假设User.java中有如下这两种特殊的属性: public class User implements Serializable{ private Date birth; private byte[] icon; } 注册这两种属性编辑器只需在Controller中定义如下这样一个 initBinder 方法: @Controller("userController") @RequestMapping(value = "/user") public class UserController { @RequestMapping(value = "create", method = RequestMethod.POST) public String create(@ModelAttribute("user") User user, RedirectAttributes redirectAttributes) { userService.createUser(user); redirectAttributes

Spring MVC 全局异常处理(1) --SimpleMappingExceptionResolver

耗尽温柔 提交于 2019-12-03 20:36:14
我们经常会遇到一些设计的不好的应用,当出现一些未知异常时,就显示一个打印着错误堆栈的网页。看到这些错误堆栈信息往往用户都会一头雾水,我们会抱怨这个设计实在太不友好了。而且错误堆栈信息由于暴露了后台方法的调用关系,对应用来说这是有一定潜在风险的。虽然在web.xml中可以配置处理异常的jsp页面,但这个还是远远不够的。 SpringMVC 对错误处理提供了更好的解决方案。 在SpingMVC的web应用中,有两种处理异常的方法。一种是使用 HandlerExceptionResolver 接口;一种是在Controller类内部使用@ExceptionHandler注解。使用HandlerExceptionResolver接口可以实现全局异常控制,并且SpringMVC提供了一个默认的实现类SimpleMappingExceptionResolver。今天 小博老师 就给大家介绍一下该类的使用方法。 比如,我们应用中定义了一个异常类BwfException,我们希望无论什么时候出现该异常就跳转到预定义的页面:/WEB-INF/views/error/BwfExceptionView.jsp。那么spring的配置文件的写法如下所示: defaultErrorView:定义默认的异常处理页面,当该没有注册对应的异常类型处理时使用。 exceptionAttribute

Spring3 MVC Login Interceptor

折月煮酒 提交于 2019-12-03 20:36:01
在学spring3 mvc,做了个简单的CRUD,但是用户不登录也能直接访问任何页面。我的想法是写个SecurityInterceptor在preHandle中判断session是不是存在user对象。配置如下: <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/*" /> <bean class="smartcrud.common.spring.SecurityInterceptor"> </bean> </mvc:interceptor> </mvc:interceptors> 代码如下: public class SecurityInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // intercept HttpSession session = request.getSession(); if (session.getAttribute("user") == null) { throw new

Spring MVC 拦截器(1)-HandlerInterceptor

只愿长相守 提交于 2019-12-03 00:01:43
拦截器的用途是非常广的,它主要的作用是拦截用户请求,处理数据,判定请求是否合理,决定是否放行。通常把拦截器用来验证权限、判断用登陆状态等。 springMVC 中对拦截器有良好的支持。一般可通过两种方式,其一实现Spring 的 HandlerInterceptor 接口或继承该接口的实现类;其二实现Spring的WebRequestInterceptor接口货继承该接口的实现类。 今天小博老师先给大家介绍SpringMVC中第一种拦截器的实现方式。我们先来看一下HandlerInterceptor接口的源码结构: HandlerInterceptor 接口中定义了三个方法: 1. preHandle 方法。该方法会在请求处理之前进行调用。返回值是布尔值Boolean 类型的,当返回false时请求结束,后续拦截器 和Controller 都不会被执行;当返回true 时继续调用下个拦截器 的preHandle 方法,如果已经是最后一个拦截器,则调用当前请求的Controller 方法。 2. postHandle 方法。该方法在请求处理之后,即Controller 方法调用之后执行。但是将会DispatcherServlet 进行视图渲染之前被调用,因此可以对Controller 处理之后的ModelAndView 对象进行操作,以便于在视图渲染时使用。 3.

spring4mvc整合mybatis3

我是研究僧i 提交于 2019-12-02 22:15:31
1.pom.xml文件增加mybatis3的jar包如下,本人用的spring版本为4.1.6.RELEASE !-- 添加mybatis的核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version> </dependency> <!-- 添加mybatis与Spring整合的核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> 2.配置文件目录结构,有多少个业务在mapping下就有多少个配置,相应在dao下就有多少个映射类 在*ServiceImpl使用的时候根据需要@autowire不同的Mapper类即可,如下, 3.*ServiceImpl.java--T_USERServiceImpl.java package com.zhxjz.service.t_user.impl; import org.springframework.beans.factory.annotation.Autowired; import

Ember.js 入门指南--目录

ぃ、小莉子 提交于 2019-12-02 20:48:01
本系列文章全部从( http://ibeginner.sinaapp.com/ )迁移过来,欢迎访问原网站。 Ember.js 是什么?我想对于想学习它的人应该知道它是个什么东西,如果你想了解那就赶紧去 Google 或者百度,本系列教程是通过学习官网教程然后摘抄个人觉得比较重要的部分,加上学习实例整合而成,如有疏漏欢迎提出修改意见,一起成长! Ember官网: http://emberjs.com/ 教程官网: http://guides.emberjs.com/v2.0.0/ 在此简单介绍下 Ember; Ember是一个雄心勃勃的Web应用程序,消除了样板,并提供了一个标准的应用程序架构的JavaScript框架。 Ember核心组成有如下几个部分: 路由 在Ember应用程序中,程序的状态是又URL表示出来的。每一个URL都有一个对应的路由对象,这个对象可以控制是否对用户可见。 模型 每一个路由都有一个与此关联的模型,模型中包含应用程序当前状态相关的数据。对于应用程序来说,可以通过使用jQuery从服务器加载JSON对象,并将这些JSON对象作为模型,很多的应用程序都是使用模型库来处理数据,比如Ember data。 模板 模板是用于构建一个应用程序的HTML以及作为模板语言。(HTMLBars是Handlebars的另一个版本,用于构建DOM元素而不是构建成一个字符串。)

Spring MVC学习笔记(二)

妖精的绣舞 提交于 2019-12-02 17:22:43
在方法参数上使用@ModelAttribute表明参数的值需要从model中获取。如果model不存在,参数应当首先被实例化然后添加进model。一旦model存在,参数的属性需要从名称匹配的请求参数中获取。 示例 @RequestMapping(value="/owners/{ownerId}/pets/{petId}/edit", method=RequestMethod.POST) public String processSubmit(@ModelAttribute Pet pet){ } 上面示例中pet实例的来源,有以下几种情况: 可能已经存在由于使用了@SessionAttributes。 由于在同一个控制器中的@ModelAttribute方法。 可能基于URI模板变量和类型转换器检索。 可能有默认的构造函数实例化。 @ModelAttribute方法是一种获取通过使用@SessionAttributes存储在请求中的属性普通方式。在某些情况下通过使用URI模板变量和类型转换器检索属性会更方便。 示例 @RequestMapping(value="/account/{account}", method=RequestMethod.PUT) public String save(@ModelAttribute("account") Account account){}

micro-mvc技术说明

本小妞迷上赌 提交于 2019-12-02 17:09:38
micro-mvc框架,借助nhmicro框架和groovy技术使所有的controller、servicebean、dao和sql脚本都支持动态热部署和调试。 Controller层 Controller层groovy中使用注解MicroUrlMapping设置url地址 类上的注解必须有并作为根路径 各个方法中设置子路径 比如下面的groovy中test方法可以调用url为/testController/test 方法参数固定为HttpServletRequest request, HttpServletResponse response @MicroUrlMapping(name="/testController") class TestController extends MicroControllerTemplate { public String tableName="micro_test3"; public String getTableName(HttpServletRequest httpRequest){ return tableName; } @MicroUrlMapping(name="/test") public void test(HttpServletRequest request, HttpServletResponse response){