• 我的java mvc


    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>

  • 相关阅读:
    ASP.NET之Cookie(坑爹的Response.Cookies.Remove)
    ASP.NET 4.0中使用FreeTextBox和FCKeditor遇到安全问题警告的解决办法
    ASP.NET用户控件操作ASPX页面(在ASPX页面捕捉用户控件的事件)
    ASP.NET页面传值之Server.Transfer
    印象中的东北特色
    Python第二周之函数及其作用域
    Python第二周之字符串,列表,元组,集合,字典
    Python第一周习题集(一)
    Python第二周习题集(一)(Craps游戏 质数 公约数 公倍数 回文质数 21根火柴游戏 验证码 后缀名 骰子随机和)
    Python第一周习题集(二)
  • 原文地址:https://www.cnblogs.com/xkzy/p/4483153.html
Copyright © 2020-2023  润新知