简介

基本风格是按照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. 状态压缩·一(状态压缩DP)

    描述 小Hi和小Ho在兑换到了喜欢的奖品之后,便继续起了他们的美国之行,思来想去,他们决定乘坐火车前往下一座城市——那座城市即将举行美食节! 但是不幸的是,小Hi和小Ho并没有能够买到很好的火车票—— ...

  2. [九省联考2018] 一双木棋 chess

    Description 菲菲和牛牛在一块n 行m 列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手. 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满棋盘时结束. 落子的规则是:一个格子可 ...

  3. Java反射的好处

    反射的好处 我们在第一次接触反射的时候,总会有个很大的疑问,反射看起来好麻烦啊,各种get.get,他究竟有什么好处,能用来做什么呢? 我们先来看一下<编程思想>这本书中是怎么说的. RT ...

  4. MYSQL一次千万级连表查询优化

    概述:交代一下背景,这算是一次项目经验吧,属于公司一个已上线平台的功能,这算是离职人员挖下的坑,随着数据越来越多,原本的SQL查询变得越来越慢,用户体验特别差,因此SQL优化任务交到了我手上. 这个S ...

  5. BZOJ4806(SummerTrainingDay03-K dp)

    炮 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 464  Solved: 243[Submit][Status][Discuss] Descript ...

  6. Angular4.x 自定义搜索组件

    Angular4 随笔(三)  ——自定义搜索组件 1.简介 本组件主要是实现了搜索功能,主要是通过父子组件传值实现. 基本逻辑: 1.创建一个搜索组件,如:ng g component  searc ...

  7. JS 正则截取字符串

    1.js截取两个字符串之间的内容: varstr = "aaabbbcccdddeeefff"; str = str.match(/aaa(\S*)fff/)[1]; alert( ...

  8. 微信小程序css画三角形内有文字

    <view class="productStatus"> <span> <em>已上架</em> </span> < ...

  9. 纯小白入手 vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造

    vue3.0 CLI 真小白一步一步入手全教程系列:https://www.cnblogs.com/ndos/category/1295752.html 我的 github 地址 - vue3.0St ...

  10. 自定义适用于手机和平板电脑的 Dynamics 365(一):主页

    当用户首次打开适用于手机和平板电脑的 Dynamics 365 时,他们将看到默认为“销售仪表板”的主页. 您可以创建新仪表板或 Web 应用程序中编辑现有仪表板,然后为移动设备启用它们,用户可以选择 ...