自己写的开源MVC-easyMVC分享
简介
基本风格是按照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分享的更多相关文章
- 分享一实战性开源MVC框架<Linux、Windows跨平台开发so easy>
一.引子 开源地址 https://github.com/564064202/Moon.Mvc 欢迎加入开发 .NET Core微软还在发力,但作为商用还有一段距离,很多开发库尚不能用于.NET ...
- 分享一个c#写的开源分布式消息队列equeue
分享一个c#写的开源分布式消息队列equeue 前言 equeue消息队列中的专业术语 Topic Queue Producer Consumer Consumer Group Broker 集群消费 ...
- 屌丝程序员的梦想 (六) 我也写个开源CMS
离开上家公司之后,我没急着找下家公司,一直以来都是为公司做各个细小的功能却没有属于自己的完整的项目 思来想去,我准备用自己熟悉的thinkphp 和 extjs写一个开源的cms,从用户系统,文章系统 ...
- EQueue - 一个C#写的开源分布式消息队列的总体介绍(转)
源: EQueue - 一个C#写的开源分布式消息队列的总体介绍 EQueue - 一个纯C#写的分布式消息队列介绍2 EQueue - 详细谈一下消息持久化以及消息堆积的设计
- RFID系统 免费开源代码 开发,分享[申明:来源于网络]
RFID系统 免费开源代码 开发,分享[申明:来源于网络] 地址:http://www.codeforge.cn/s/0/RFID%E7%B3%BB%E7%BB%9F
- 如果我写一个开源的HIS软件
HIS也称为医院信息管理系统,如果我要写一个 开源的,会成吗?为什么要这么做?出于对这个行业的担忧及其当前该行业的一些问题的思考.我曾跟两个HIS供应商讨论过这个话题,但可以感受到他们在利益面前,最终 ...
- 一步一步手写GIS开源项目-(2)地图平移缩放实现
系列文章目录 一步一步手写GIS开源项目-(1)500行代码实现基础GIS展示功能 一步一步手写GIS开源项目-(2)地图平移缩放实现 项目github地址:https://github.com/Hu ...
- 实用的开源百度云分享爬虫项目yunshare - 安装篇
今天开源了一个百度云网盘爬虫项目,地址是https://github.com/callmelanmao/yunshare. 百度云分享爬虫项目 github上有好几个这样的开源项目,但是都只提供了爬虫 ...
- 【开源.NET】 分享一个前后端分离的轻量级内容管理框架
开发框架要考虑的面太多了:安全.稳定.性能.效率.扩展.整洁,还要经得起实践的考验,从零开发一个可用的框架,是很耗时费神的工作.网上很多开源的框架,为何还要自己开发?我是基于以下两点: 没找到合适的: ...
随机推荐
- Pycharm---新建文件时 自动添加作者时间等信息
可用的变量有: $ {PROJECT_NAME} - 当前项目的名称. $ {NAME} - 在文件创建过程中在“新建文件”对话框中指定的新文件的名称. $ {USER} - 当前用户的登录名. $ ...
- Eclipse 4.3 Kepler最快汉化方法
eclipse 4.3汉化 eclipse 4.3 ---kepler已经于2013年6月26日发布主要版本,详见:eclipse in wikipedia 1.上eclipse官网:http:/ ...
- C#图片文字识别
图片识别的技术到几天已经很成熟了,只是相关的资料很少,为了方便在此汇总一下(C#实现),方便需要的朋友查阅,也给自己做个记号. 图片识别的用途:很多人用它去破解网站的验证码,用于达到自动刷票或者是批量 ...
- oracleHelper 操作帮助类
using System; using System.Configuration; using System.Data; using System.Collections; using Oracle. ...
- 6.C#知识点:反射
1.反射是什么? 反射提供描述组件,模块和类型的对象(类型为Type).您可以使用反射来动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型,并调用其方法或访问其字段和属性.如果您在代码中使 ...
- java 跨域-利用jsonp
Tomcat在 7.0.73, 8.0.39, 8.5.7 版本之前的可以用,不然后台报错 /** * 前端首页跳转后台 */ @RequestMapping("WebIndex.get&q ...
- HDU1824(2-SAT)
Let's go home Time Limit: 10000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- 【 js 算法类】这么全的数组去重,你怕不怕?
以 var arr = [1,2,3,1]; 作为测试用例 方法一:双循环 (时间复杂度比较高,性能一般.) A.(1) function unique(arr) { var newArr = [ ...
- 【代码笔记】iOS-长条蓝色button
一,效果图. 二,代码. ViewController.m - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup ...
- 将数据导入MongoDB集群与MySQL
import sys import json import pymongo import datetime from pymongo import MongoClient client = Mongo ...