简介

基本风格是按照spring mvc做的,在后期会加入一些新的特性,封装成易于自己项目使用的mvc框架。

github地址:

https://github.com/tangyanbo/easymvc

功能简介:

1. 支持将客户端参数封装成对象,类型自动转换
2. 支持注解,配置controller和方法@RequestMapping
3. 方法中可以对request和response进行访问
4. 支持jstl
5. 可配置编码
6. controller方法的参数可以任意调换
7. 404报错提醒
8. restfull支持@PathVariable

快速使用入门

jar包:

在dist目录中copy easymvc.jar和依赖jar包到web项目中

在web项目中,resources目录下建立mvc-servlet.xml

<beans>
<!-- 编码 -->
<constant name="charsetEncoding">utf-8</constant> <!-- 扫描的目录 -->
<scan base-package="com.easymvc.controller"/> </beans>

web.xml中配置:

<servlet>
<servlet-name>EasymvcInitServlet</servlet-name>
<display-name>EasymvcInitServlet</display-name>
<load-on-startup>1</load-on-startup>
<description></description>
<servlet-class>com.easymvc.servlet.EasymvcInitServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>EasymvcInitServlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>

Controller:

@Controller //Controller注解
public class TestController { @RequestMapping(value = "/test.html")
public String test(Model model,User user,HttpServletRequest request,HttpServletResponse response){
System.out.println("controller:"+user.getName());
List<User> list = new ArrayList<User>();
for(int i=0;i<2;i++){
User user1 = new User();
user1.setName("哈哈"+i);
list.add(user1);
}
model.addAttribute("list", list);
System.out.println(request);
System.out.println(response);
return "test";
}
}

jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <html>
<head>
<style type="text/css">
div{
padding:5px;
} </style>
</head> <body>
<div style="color: green"> <form action="test.html" method="POST">
<div>
name: <input name="name" type="text"/>
</div>
<div>
orderInfo.orderId: <input name="orderInfo.orderId" type="text"/>
</div>
<div>
orderInfo.user.name:<input name="orderInfo.user.name" type="text"/>
</div>
<div>
sex: <input name="sex" type="text"/>
</div>
<div>
birthDate: <input name="birthDate" type="text"/>
</div>
<div>
type: <input name="type" type="text"/>
</div>
<div>
amt: <input name="amt" type="text"/>
</div>
<div>
status: <input name="status" type="text"/>
</div>
<input type="submit">
</form> </div>
</body> </html>

restfull支持:

@RequestMapping(value = "/test/{userId}/test3.html")
public String test3(@PathVariable("userId") String userId){
System.out.println("======================="+userId);
return "test";
}

自己写的开源MVC-easyMVC分享的更多相关文章

  1. 分享一实战性开源MVC框架<Linux、Windows跨平台开发so easy>

    一.引子   开源地址 https://github.com/564064202/Moon.Mvc 欢迎加入开发 .NET Core微软还在发力,但作为商用还有一段距离,很多开发库尚不能用于.NET ...

  2. 分享一个c#写的开源分布式消息队列equeue

    分享一个c#写的开源分布式消息队列equeue 前言 equeue消息队列中的专业术语 Topic Queue Producer Consumer Consumer Group Broker 集群消费 ...

  3. 屌丝程序员的梦想 (六) 我也写个开源CMS

    离开上家公司之后,我没急着找下家公司,一直以来都是为公司做各个细小的功能却没有属于自己的完整的项目 思来想去,我准备用自己熟悉的thinkphp 和 extjs写一个开源的cms,从用户系统,文章系统 ...

  4. EQueue - 一个C#写的开源分布式消息队列的总体介绍(转)

    源: EQueue - 一个C#写的开源分布式消息队列的总体介绍 EQueue - 一个纯C#写的分布式消息队列介绍2 EQueue - 详细谈一下消息持久化以及消息堆积的设计

  5. RFID系统 免费开源代码 开发,分享[申明:来源于网络]

    RFID系统 免费开源代码 开发,分享[申明:来源于网络] 地址:http://www.codeforge.cn/s/0/RFID%E7%B3%BB%E7%BB%9F

  6. 如果我写一个开源的HIS软件

    HIS也称为医院信息管理系统,如果我要写一个 开源的,会成吗?为什么要这么做?出于对这个行业的担忧及其当前该行业的一些问题的思考.我曾跟两个HIS供应商讨论过这个话题,但可以感受到他们在利益面前,最终 ...

  7. 一步一步手写GIS开源项目-(2)地图平移缩放实现

    系列文章目录 一步一步手写GIS开源项目-(1)500行代码实现基础GIS展示功能 一步一步手写GIS开源项目-(2)地图平移缩放实现 项目github地址:https://github.com/Hu ...

  8. 实用的开源百度云分享爬虫项目yunshare - 安装篇

    今天开源了一个百度云网盘爬虫项目,地址是https://github.com/callmelanmao/yunshare. 百度云分享爬虫项目 github上有好几个这样的开源项目,但是都只提供了爬虫 ...

  9. 【开源.NET】 分享一个前后端分离的轻量级内容管理框架

    开发框架要考虑的面太多了:安全.稳定.性能.效率.扩展.整洁,还要经得起实践的考验,从零开发一个可用的框架,是很耗时费神的工作.网上很多开源的框架,为何还要自己开发?我是基于以下两点: 没找到合适的: ...

随机推荐

  1. 常见移动设备的 CSS3 Media Query 整理(iPhone/iPad/Galaxy/HTC One etc.)

    @charset "utf-8"; /** * iPhone 4/4s landscape & portrait */ @media only screen and (mi ...

  2. ASP.NET MVC实现剪切图片

    开发需要,我们需要对某一张图片进行剪切.就是说,获取图片某一区域.下面Insus.NET教大家轻便容易实现它. 首先写好一个处理函数,它建在MVC应用程序结构Utilities目录下: 准备好一张图片 ...

  3. MVC会员注销功能Cookie的应用

    我们实现了<MVC应用程序实现会员登录功能>http://www.cnblogs.com/insus/p/3466512.html 有登录就会有注销功能.此次Insus.NET练习一个MV ...

  4. [日常] Go语言圣经--Channel习题

    练习 8.3: 在netcat3例子中,conn虽然是一个interface类型的值,但是其底层真实类型是*net.TCPConn,代表一个TCP连接.一个TCP连接有读和写两个部分,可以使用Clos ...

  5. Maven的配置与下载

    一丶下载 前提条件 :已经安装配置好了Jdk 进入maven官网选择自己看上的版本:http://maven.apache.org/ 下载后解压开始配置环境! 二丶配置环境变量 新建系统变量 其实不建 ...

  6. java项目运用server运行(eclipse、myeclipse通用)

    右键点击”new“选择“Other”,打开选项 勾选”Show All Wizards“ 然后在搜索处输入server,选择server,点击next 刚进来时此处都是空的,点击Configure r ...

  7. Java虚拟机 - Javac编译与JIT编译

    [深入Java虚拟机]之七:Javac编译与JIT编译 编译过程 不论是物理机还是虚拟机,大部分的程序代码从开始编译到最终转化成物理机的目标代码或虚拟机能执行的指令集之前,都会按照如下图所示的各个步骤 ...

  8. video 在移动端播放禁止全屏

    <video src="" preload controls x5-playsinline="" playsinline="" web ...

  9. deferred对象详解

    什么是Deferred对象  defer,推迟:延期.含义就是”延迟”到未来某个点再执行. 在开发中,我们经常遇到某些耗时很长的javascript操作.其中,既有异步的操作(比如ajax读取服务器数 ...

  10. 排序算法(9)--Distribution Sorting--分布排序[1]--Counting sort--计数器排序

    1.基本思想 假设数序列中小于元素a的个数为n,则直接把a放到第n+1个位置上.当存在几个相同的元素时要做适当的调整,因为不能把所有的元素放到同一个位置上.计数排序假设输入的元素都是0到k之间的整数. ...