自己写的开源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";
    }
时间: 2024-10-03 20:37:40

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

分享一实战性开源MVC框架&lt;Linux、Windows跨平台开发so easy&gt;

一.引子   开源地址 http://pan.baidu.com/s/1slCMspR .NET Core微软还在发力,但作为商用还有一段距离,很多开发库尚不能用于.NET Core,因此我们还没有看到一个大型的使用案例, 这时大家或许想到Mono部署ASP.NET MVC,但部署过的人必然知道:这不是一个容易的工作,需要各种工作,至今也没有几个人容易地完成这项工作. .NET Core作为微软的新星,但还不够成熟强大,在其发出耀眼光辉之前,我们分享一实战性强的开源MVC框架: Moon.Mvc

我写的一个mvc框架讲解之一

从最原始的在jsp页面里面写代码到使用框架写代码,一路走来,大大小小的项目做了许多,接触过的mvc框架也有很多,目前开发界比较主流的mvc框架是struts2和spring mvc,都有各自缺点和优点,在项目使用过程中总有不尽人意的地方,下面主要讲解一下struts2和spring mvc在项目使用的不足之处,最终引入一个我自己写的一个mvc框架,虽然本框架还不够完善,也不敢说有多好,只是说比较合适于我的开发方式,并且已经在多个项目中使用.什么是mvc以及mvc原理,我不做讲解,自己百度 str

开源中国活动分享

周末无事约了以前同事去听了开源中国源创会的活动,感觉不错.简单说一下. docker最近真是很火,昨天才刚听完一个同事的分享,使用linux containers和aufs减少虚拟化的overhead,build ship and run,有好感.今天是七牛一哥们做的分享,docker适合做paas,vm适合做iaas,使用范围仍然不同,他们内部使用docker做云处理api调用.后面thought works的新开源ci框架go就使用docker做沙盒.go与jenkins相比,就是pipel

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

离开上家公司之后,我没急着找下家公司,一直以来都是为公司做各个细小的功能却没有属于自己的完整的项目 思来想去,我准备用自己熟悉的thinkphp 和 extjs写一个开源的cms,从用户系统,文章系统,权限系统,以及简单的前端自定义布局 当初的设想很完美,但是实现起来困难很多,thinkphp结合extjs这样的资料很少,只是找到一个有很多bug的仓储系统 就这样磨磨蹭蹭一个月,终于各个模块算是完成了,我的补偿金也快花完了... 虽然不是很完美,还是有些bug..但是我总算有了自己一个完整的系统

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

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

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

开发框架要考虑的面太多了:安全.稳定.性能.效率.扩展.整洁,还要经得起实践的考验,从零开发一个可用的框架,是很耗时费神的工作.网上很多开源的框架,为何还要自己开发?我是基于以下两点: 没找到合适的:安全.稳定.简单.易用.高效.免费: 想成为架构师: 于是就自己动手,参考网上开源的项目和借鉴网友的设计思路(特别是萧秦系列博文),结合自己的实践,开发了一个简单.易用.高效的的框架,虽然不完善,但也能解决现实中的问题.不过随着见识增广,发现没负责过千万级别的项目难以成为架构师,也不可能开发出一个完

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

今天开源了一个百度云网盘爬虫项目,地址是https://github.com/callmelanmao/yunshare. 百度云分享爬虫项目 github上有好几个这样的开源项目,但是都只提供了爬虫部分,这个项目在爬虫的基础上还增加了保存数据,建立elasticsearch索引的模块,可以用在实际生产环境中,不过web模块还是需要自己开发 安装# 安装node.js和pm2,node用来运行爬虫程序和索引程序,pm2用来管理node任务 安装mysql和mongodb,mysql用来保存爬虫数

[转]Android开源项目收藏分享

转自:http://blog.csdn.net/dianyueneo/article/details/40683285 Android开源项目分类汇总 如果你也对开源实现库的实现原理感兴趣,欢迎 Star 和 Fork 14884(入群理由必须填写群简介问题答案)4489 63224677(三群已满) 欢迎大家推荐好的Android开源项目,可直接Star.Fork :) 对你有帮助的话,顺手去知乎点个赞吧: 目前包括: ActionBar.ViewPager.GridView.Progress

开源百度云分享爬虫项目yunshare最新分享 - 安装篇

今天开源了一个百度云网盘爬虫项目,地址是https://github.com/callmelanmao/yunshare. 百度云分享爬虫项目 github上有好几个这样的开源项目,但是都只提供了爬虫部分,这个项目在爬虫的基础上还增加了保存数据,建立elasticsearch索引的模块,可以用在实际生产环境中,不过web模块还是需要自己开发 安装 安装node.js和pm2,node用来运行爬虫程序和索引程序,pm2用来管理node任务 安装mysql和mongodb,mysql用来保存爬虫数据