mvc

自定义MVC框架之一框架总说明

断了今生、忘了曾经 提交于 2019-11-29 05:12:30
本系列文章将为你介绍一个简单的自定义的MVC框架,主要是用于学习,框架模拟struts实现。 项目结构如下: LoginAction.java 测试,模拟登陆处理 Action.java 框架Action接口 ActionManager.java 根据配置的Action类名反射得到实例 ActionMapping.java 根据Action配置定义的javabean类,用于保存Action配置信息 ActionMappingManager.java 读取、解析Action配置并把配置转换成对应的ActionMapping对象 CharactorFilter.java 编码过滤器 ActionServlet.java 框架拦截器,根据web.xml的配置拦截请求 snails-actions-validate.xsd Action配置的校验文件,此文件限定了Action配置的格式 snails-actions.xml Action配置,类似于struts,配置了Action的名称、类、结果页面 依赖jar commons-lang3-3.1.jar dom4j-1.6.1.jar web.xml项目总配置文件 fail.jsp 登录失败页面后跳转页面 index.jsp登录页面 success.jsp 登录成功后跳转页面 框架执行流程 重点在框架拦截器 ActionServlet

页面提交表单Form中的字符串数据转化为指定类型

限于喜欢 提交于 2019-11-29 03:11:00
页面提交表单Form中的字符串数据转化为指定类型,例如日期Date、枚举Gender等 1 使用Spring MVC提供的@InitBinder注解(从Spring MVC3.x开始) 2 在Controller中声明一个方法,使用WebDataBinder对象作为参数,并表示1.1中的注解 // 看如下代码 // Controller @Controller @RequestMapping("/customerController") public class CustomerController { // ... @InitBinder public void binder(WebDataBinder binder) { // 处理日期类型 binder.registerCustomEditor(Date.class, new PropertyEditorSupport() { public void setAsText(String value) { try { setValue(new SimpleDateFormat("yyyy-MM-dd").parse(value)); } catch(ParseException e) { setValue(null); } } public String getAsText() { return new

Spring mvc 和 CXF 搭建SOAP环境

巧了我就是萌 提交于 2019-11-29 03:09:53
最近用Spring mvc框架搭建web工程,后因为业务需要重新需要在原有web工程基础上,添加Webservice接口。这就涉及到一个问题: 在spring mvc 配置文件中如何添加一些WS框架。在添加之初发现一个问题: 当WS配置文件配置到spring**-servlet 。会遇到一个问题:能访问controller请求时候,WS会提示No Service Availble 显示 。或者Controller都访问不了。具体原因是 : 有重复定义当前当前配置信息。解决方法如下: Spring MVC是通过DispatcherServlet来加载Spring配置文件的,因此不需要在web.xml中配 ContextLoaderListener。但是CXF却需要通过ContextLoaderListener来加载Spring。 这样就产生了一个矛盾,如果不配置ContextLoaderListener,CXF就无法正常使用。但如果配置 ContextLoaderListener,又会造成Spring的重复加载(DispatcherServlet一次,ContextLoaderListener一次) 在网上查了一下资料,只看到一个国外的程序员提出不配置ContextLoaderListener,通过写一个CXFController,来替代默认的CXFServlet

(转)Java MVC框架性能比较

こ雲淡風輕ζ 提交于 2019-11-29 00:46:55
现在各种 MVC 框架很多,各框架的优缺点网络上也有很多的参考文章,但介绍各框架性能方面差别的文章却不多,本人在项目开发中,感觉到采用了 struts2 框架的项目访问速度,明显不如原来采用了 struts1 框架的项目快,带着这些疑惑,我对各类 MVC 框架的做了一个简单的性能分析比较,其结果应该说是基本符合预期的,可供大家参考。 测试环境: CPU :酷睿 2 T5750 ,内存: DDR2-667 2G , Web 容器: Tomcat6.0 ,最大线程数设置为 1000 ,操作系统: WinXP-sp3 测试步骤: 搭建 6 个 Web 工程,如下: 1. 纯 JSP: 不包含任何 MVC 框架,只有一个测试用的 JSP 页面。 2.struts1 : 包含一个 Action ,不做任何逻辑处理,直接转发到一个 JSP 页面 3.struts2 JSP : 不包含 Action ,只包含测试 JSP 页面,直接访问该页面。 4.struts2 单例 Action : 采用 Spring 来管理 Struts2 的 Action 实例,并配置成单例模式。 5.struts2 多例 Action : 采用 Spring 来管理 Struts2 的 Action 实例,并配置成单例模式。 6.SpringMVC3 : 采用 Spring 来管理 Controller 实例

7 天玩转 ASP.NET MVC — 第 5 天

拈花ヽ惹草 提交于 2019-11-28 22:45:40
目录 第 1 天 第 2 天 第 3 天 第 4 天 第 5 天 第 6 天 第 7 天 0. 前言 欢迎来到第五天的学习。希望第一天到第四天的学习,你都是开心的。 1. Lab 22 — 增加 Footer 在这个实验中,我们将会向 Employee 页面添加 Footer。本次实验的目标是理解分部视图(Partial Views)。 什么是「Partial Views」? 逻辑上讲,分部视图(Partial Views) 是一个可重用的视图,它不会被直接显示。它会被其它视图所包含,然后作为该视图的一部分来显示。它类似于 ASP.NET Web Forms 中的用户控件,但是没有后台代码。 第一步:为 Partial View 创建 ViewModel 右击 ViewModel 文件夹,然后创建一个类,命名为 FooterViewModel。 public class FooterViewModel { public string CompanyName { get; set; } public string Year { get; set; } } 第二步:创建 Partial View 右击「~/Views/Shared」文件夹,选择 Add -> View。 设置视图的名称为 Footer。选中「Create as a partial view」复选框,然后点击「Add」。

7 天玩转 ASP.NET MVC — 第 7 天

夙愿已清 提交于 2019-11-28 22:45:10
目录 第 1 天 第 2 天 第 3 天 第 4 天 第 5 天 第 6 天 第 7 天 0. 前言 今天是开心的一天。因为我们终于来到了系列学习的最后一节。我相信你喜欢之前的课程,并从中学到了许多。 1. Lab 32 — 让项目有组织性 这个实验确切地讲无关任何新的功能。它只是使项目更有结构性和系统化。 第一步:创建解决方案文件夹 右击解决方案,然后选择 Add -> New Solution Folder。 将文件夹的名称改为「View And Controller」。现在重复这个步骤,创建多个相似的文件夹,分别命名为「Model」,「ViewModel」,「Data Access Layer」。 第二步:创建数据访问层项目 右击 Data Access Layer 文件夹,然后创建一个新的类库项目,命名为「DataAccessLayer」。 第三步:创建业务层和业务实体层项目 在 Model 文件夹下创建两个类库项目,分别命名为「BusinessLayer」 和 「BusinessEntities」。 第四步:创建 ViewModel 项目 在 ViewModel 文件夹下创建一个新的类库项目,命名为「ViewModel」。 第五步:添加引用 首先右击每一个项目,然后选择 Add -> Reference,选择如下引用。 对于 DataAccessLayer,选择

七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理

眉间皱痕 提交于 2019-11-28 22:43:07
系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理 七天学会ASP.NET MVC (四)——用户授权认证问题 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理 目录 实验22——添加页脚 实验23——实现用户角色管理 实验24——实现项目外观一致性 实验25——使用Action 过滤器让页眉和页脚代码更有效 总结 实验22——添加页脚 在本实验中,我们会在Employee 页面添加页脚,通过本实验理解分部视图。 什么是“分部视图”? 从逻辑上看,分部视图是一种可重用的视图,不会直接显示,包含于其他视图中,作为其视图的一部分来显示。用法与用户控件类似,但不需要编写后台代码。 1. 创建分部视图的 ViewModel 右击 ViewModel 文件夹,新建 FooterViewModel 类,如下: 1: public class FooterViewModel 2: { 3: public string CompanyName { get; set; } 4: public string Year { get; set; } 5: } 2. 创建分部视图 右击“~

Asp.Net MVC4入门指南(2):添加一个控制器

给你一囗甜甜゛ 提交于 2019-11-28 22:42:53
MVC代表: 模型 - 视图 - 控制器 。MVC是一个架构良好并且易于测试和易于维护的开发模式。基于MVC模式的应用程序包含: ・ M odels: 表示该应用程序的数据并使用验证逻辑来强制实施业务规则的数据类。 ・ V iews: 应用程序动态生成 HTML所使用的模板文件。 ・ C ontrollers: 处理浏览器的请求,取得数据模型,然后指定要响应浏览器请求的视图模板。 本系列教程,我们将覆盖所有这些概念,并告诉您如何使用它们来构建应用程序。 首先,让我们创建一个控制器类。在 解决方案资源管理器中 ,用鼠标右键单击控制器文件夹,然后选择“ 添加控制器“ 。 命名新的控制器为“HelloWorldController”。保留默认的模板为“Empty MVC controller”,并单击“ 添加“。 请注意,在 解决方案资源管理器中 会创建一个名为HelloWorldController.cs的新文件。该文件会被IDE默认打开。 用下面的代码替换该文件中的内容。 ? 在这个例子中控制器方法将返回一个字符串的HTML。本控制器被命名HelloWorldController代码中的第一种方法被命名为Index。让我们从浏览器中调用它。运行应用程序(按F5或CTRL + F5)。在浏览器的地址栏中输入路径“HelloWorld“。(例如,在下面的示例中: http:/

Asp.Net MVC4入门指南(3):添加一个视图

狂风中的少年 提交于 2019-11-28 22:41:31
在本节中,您需要修改HelloWorldController类,从而使用视图模板文件,干净优雅的封装生成返回到客户端浏览器HTML的过程。 您将创建一个视图模板文件,其中使用了ASP.NET MVC 3所引入的 Razor视图引擎 。Razor视图模板文件使用.cshtml文件扩展名,并提供了一个优雅的方式来使用C#语言创建所要输出的HTML。用Razor编写一个视图模板文件时,将所需的字符和键盘敲击数量降到了最低,并实现了快速,流畅的编码工作流程。 当前在控制器类中的Index方法返回了一个硬编码的字符串。更改Index方法返回一个View对象,如下面的示例代码: ? 上面的Index方法使用一个视图模板来生成一个HTML返回给浏览器。控制器的方法(也被称为 action method(操作方法) ),如上面的Index方法,一般返回一个 ActionResult (或从 ActionResult 所继承的类型),而不是原始的类型,如字符串。 在该项目中,您可以使用的Index方法来添加一个视图模板。要做到这一点,在Index方法中单击鼠标右键,然后单击“ 添加视图“ 。 出现 添加视图 对话框。保留缺省值,并单击 添加 按钮: 您可以在 解决方案资源管理器 中看到MvcMovie\HelloWorld文件夹和已被创建的MvcMovie\View\HelloWorld\Index

Asp.Net MVC4入门指南(4):添加一个模型

旧时模样 提交于 2019-11-28 22:41:13
在本节中,您将添加一些类,这些类用于管理数据库中的电影。这些类是ASP.NET MVC 应用程序中的"模型(Model)"。 您将使用.NET Framework 数据访问技术 Entity Framework ,来定义和使用这些模型类。Entity Framework(通常称为 EF) 是支持代码优先的开发模式。代码优先允许您通过编写简单的类来创建对象模型。(相对于"原始的CLR objects",这也被称为POCO 类)然后可以从您的类创建数据库,这是一个非常干净快速的开发工作流程。 添加模型类 在 解决方案资源管理器中 ,右键单击 模型 文件夹,选择 添加 ,然后选择 类 . 输入 Class 名 "Movie"。 将下列五个属性添加到 Movie 类: public class Movie { public int ID { get; set; } public string Title { get; set; } public DateTime ReleaseDate { get; set; } public string Genre { get; set; } public decimal Price { get; set; } } 我们将使用 Movie 类来表示数据库中的电影。 Movie 对象的每个实例将对应数据库表的一行, Movie 类的每个属性将对应表的一列