mint mvc 并不是我原创的。她的基础是廖雪峰老师的webwind mvc。 webwind是廖老师模仿spring的一个 rest 风格的 mvc 框架,功能简单,但是mvc的核心功能基本具备了,我觉得它的设计思想也很好,很适合想了解mvc的学习者。我在他的基础上做了如下修改:
1、改善了url参数的匹配方式,原来支持9个url参数(1-9),现在支持是个url参数(0-9)。修改之后主要带来两个好处。第一:支持url参数个数增多一个;第二:符合计算机的计数方式,代码中的很多数组不用做特殊的处理,简化了代码. 
2、对一些逻辑较复杂的类进行了拆分.
3、支持自动获取请求参数并封装到bean内,供action方法使用.目前支持的类型包括:数组类型,基础类型的包装类,普通model类(包含的属性暂时只支持基础类型及其包装类,而且必须有对应的setter方法).如果一个action方法包含了基础类型(非包装类),该方法就不是合法的action方法,这是为了避免反射调用action方法时基础类型参数不能被赋予null值得权宜之举. 
 4、可以声明一个action方法只能处理特定方法的请求,目前只支持GET和POST方法. 
​1. [代码]一个典型action类如下

package demo;
import annotation.Get;
import annotation.Mapping;
import annotation.Param;
import annotation.Post;
 
@Mapping("/user")
public class UserAction {
    @Mapping("/login")
    public String hello(@Param("phone") String phone,@Param("user")User user) {
        return "<h1>Hello, " + phone + "</h1>";
    }
     
    @Get
    @Mapping("/register")
    public String register(Integer a){
        return "<h1></h1>";
    }
     
    @Post
    @Mapping("/confirm/$0")/*$+paramindex*/
    public void confirm(String name, @Param("hobby")String[] hobby, @Param("user")User user){
        System.out.println(name);英雄联盟高清壁纸
         
        if( hobby != null){
            for(String s : hobby){
                System.out.println(s);
            }
        }
         
        System.out.println("name:"+user.getUsername());
        System.out.println("name:"+user.getPassword());
    }
}

​2. [代码]confirm方法对应的html页面如下     
<%@ page language="java" contentType="text/html; charset=utf8" pageEncoding="utf8"%>
<!DOCTYPE html>http://www.5idesk.com/s/lol/​
<html>
<head>
<meta charset="utf8"/>
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="css/index.css" media="screen" />
</head>
<body>
    <form action='user/confirm/lw' method="post">
        名字:<input name="user.username" type="text" value=""/><br/>
        密码:<input name="user.password" type="text" value=""/><br/>
        电话:<input name="phone" type="text" value="梁威的电话"/><br/>
         
        爱好:<br/>
        读书<input name="hobby" type="checkbox" value="读书"/>
        音乐<input name="hobby" type="checkbox" value="音乐"/>
        游玩<input name="hobby" type="checkbox" value="游玩"/>
        夏天<input name="hobby" type="checkbox" value="夏天"/>
         
        <button type="submit">登陆</button>
    </form>
</body>
</html>

我的java mvc的更多相关文章

  1. .NET MVC 和 JAVA MVC有什么区别?

    两者的主要区别是编程语言的不同. 最典型的JAVA MVC就是JSP + servlet + javabean的模式.比较好的MVC,老牌的有Struts.Webwork.新兴的MVC 框架有Spri ...

  2. C# MVC 与Java MVC

    C# MVC与Java MVC都是三层结构:Controller.View.Model,基本上没有什么区别. 但是C# MVC有很多的变形模式: 上图所示就是C#里面MVC变向模型,里面包含BLL.C ...

  3. Java MVC 增删改查 实例

    需求:实现增加新部门的功能,对应数据库表示Oracle的dept表 一.Java MVC 增 实现: 1.视图层(V):注册部门 deptAdd.jsp 在注册新部门页面只需输入“部门名称”和“城市” ...

  4. Java MVC框架性能比较

    Java MVC框架性能比较 - by zvane 现在各种MVC框架很多,各框架的优缺点网络上也有很多的参考文章,但介绍各框架性能方面差别的文章却不多,本人在项目开发中,感觉到采用了struts2框 ...

  5. 从零开始实现一个简易的Java MVC框架(三)--实现IOC

    Spring中的IOC IoC全称是Inversion of Control,就是控制反转,他其实不是spring独有的特性或者说也不是java的特性,他是一种设计思想.而DI(Dependency ...

  6. java MVC架构-spring mvc,struct2(理解)

    MVC架构实现基础: 基于filter或者servlet实现请求地址分析,如果需要控制类处理请求,则调用相应的控制类.调用控制类时,根据配置文件初始化控制类相关的参数.数据库连接可持久化存在.控制类处 ...

  7. java MVC设计模式

    MVC(Model View Control)模型-视图-控制器 一.MVC与模板概念的理解 MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的是 ...

  8. [Java,MVC] Eclipse下搭建Spring MVC

    转自:http://blog.csdn.net/blue_jjw/article/details/8752466 一.新建Dynamic Web Project 一个web工程最基本的,只看3个地方, ...

  9. 深入浅出Java MVC(Model View Controller) ---- (JSP + servlet + javabean实例)

    在DRP中终于接触到了MVC,感触是确实这样的架构系统灵活性不少,现在感触最深的就是使用tomcat作为服务器发布比IIS好多了,起码发布很简单,使用起来方便. 首先来简单的学习一下MVC的基础知识, ...

  10. java mvc spring boot

    spring mvchttp://www.cnblogs.com/wcf6676/p/5333352.html 利用mybatis-generator自动生成代码http://www.cnblogs. ...

随机推荐

  1. JQuery处理DOM元素

    现有一个id为txtMyTest的元素 获取属性值 $('#id').attr('属性名'); 设置属性值 $('#id').attr('属性名','需要设置的值'); 设置多个属性 如下同时设置va ...

  2. echarts之series,markLine、markPoint

    一.标记线和标志点 markLine 标记线 标记线的添加,如最大值.最小值.平均值的标记线 symbol 标记的图形. data->type 特殊的标注类型,用于标注最大值最小值等. 可选: ...

  3. 巨蟒django之权限7:动态生成一级&&二级菜单

    内容回顾: . 权限的控制 . 表结构设计 存权限的信息 用户表 - name 用户名 - pwd 密码 - roles 多对多 角色表 - name - permissions 多对多 权限表 - ...

  4. FW ImageMagick

    ExploitFixes ImageMagick < 6.9.3-9 - Multiple Vulnerabilities 2016-05-04 22:05:53 Nikolay Ermishk ...

  5. Bootstrap支持的JavaScript插件

    1.导入JavaScript插件 Bootstrap除了包含丰富的Web组件之外,如前面介绍的下拉菜单.按钮组.导航.分页等.他还包括一些JavaScript的插件. Bootstrap的JavaSc ...

  6. springboot集成liquibase,h2数据库

    Liquibase是一个用于跟踪.管理和应用数据库变化的开源的数据库重构工具.它将所有数据库的变化(包括结构和数据)都保存在XML文件中,便于版本控制. Liquibase具备如下特性:* 不依赖于特 ...

  7. 【题解】Digit Tree

    [题解]Digit Tree CodeForces - 716E 呵呵以为是数据结构题然后是淀粉质还行... 题目就是给你一颗有边权的树,问你有多少路径,把路径上的数字顺次写出来,是\(m\)的倍数. ...

  8. 字符串之_strncat

    功能:将src的前n个字符添加到dest的后面 输入:dest,src,count 返回:ret #include <iostream> #include <assert.h> ...

  9. Amend Last Commit选项使用注意点

    1.创建master分支并上传到remote分支 create 2 folders and 4 files 2.修改folder1/file1.java,commit并push. 3.修改folder ...

  10. myql命令

    ALTER TABLE 表名 DROP COLUMN 列名#删除某一列