亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

SpringMVC從入門到精通第七章

標簽:
Java MySQL

过年期间太忙了没来得及更新SpringMVC框架的知识点。
上一章主要讲述了@RequestParam这个注解,不知道大家有木有忘掉,这个注解的主要作用就是把请求参数映射到目标方法的形参上面。
其实这种做法也不好,试想一下对于表单参数就不是一个两个的了。这时候利用这个注解成本就消耗的特别大的了。
简单说一下场景:对于一个注册页面有很多信息譬如:用户名、密码、确认密码、邮箱、手机、兴趣等等
这时候就会想能不能将这些个参数包装在一个对象中(POJO),用这个POJO来做目标方法的形参上面。可以说的是springmvc是支持将pojo作为目标参数的。当然也是要遵循一些规则的,就是表单的name属性值要和POJO的属性值要一致。当然了,这样又会有一个新的疑问支不支持级联属性答案是支持的。
第一个知识点:使用POJO作为目标方法参数

public class Address{
    private String city;
}
public class Person{
    private String name;
    .....
    private Addrss address;//这个就是级联属性
}

示例代码:
POJO:

public class Address {
    private String city;
    private String province;
}
public class User {
    private Integer id;
    private String username;
    private String password;
    private Address address;
}

JSP:

<form action="${pageContext.request.contextPath}/springmvc/testUsePOJOAsParam">
        用户:<input type="text" name="username"/>密码:<input type="password" name="password"/>编号:<input type="text" name="id"/><br>
        省份:<input type="text" name="address.province"/>城市:<input type="text" name="address.city"/><br>
        <input type="submit" value="使用pojo作为作为目标方法的参数,支持联级属性"/>
    </form>

Java代码:

    /**
     * SpringMVC会按请求参数名和POJO属性名进行自动匹配,
     * 自动为该对象填充属性值。支持级联属性
     * 
     * @Title: testUsePOJOAsParam
     * @Description: TODO (使用pojo作为作为参数传递给目标方法,支持联级属性)
     * @Author: Hanson.Q
     * @Create Date: 2016年2月16日 下午1:27:27
     * @History: 2016年2月16日 下午1:27:27 Hanson Created.
     * @param user
     * @return
     * 
     */
    @RequestMapping("/testUsePOJOAsParam")
    public String testUsePOJOAsParam(User user) {
        System.out.println("Use POJO as paramters : " + user);
        return "success";
    }

知识点二:使用servlet原生的API作为参数
springmvc支持使用原生的servletAPI作为目标方法的参数
jsp:

<a href="${pageContext.request.contextPath}/springmvc/testUseServletAPIAsParam">使用原生的API作为作为目标方法的参数</a>

JAVA代码:

    /**
     * 可以使用Servlet 原生的API作为目标方法的参数
     * 具体支持以下类型: HttpServletRequest、
     * HttpServletResponse、 HttpSession、 java.security.Principal、 Locale、
     * InputStream、 OutputStream、 Reader、 Writer
     * 
     * @Title: testUseServletAPIAsParam
     * @Description: TODO (测试使用原生servletAPI作为目标参数)
     * @Author: Hanson                
     * @Create Date: 2016年2月16日 下午1:34:36
     * @History: 2016年2月16日 下午1:34:36 Hanson Created.
     *
     * @param request
     * @param response
     * @param out
     * @return
     * @throws IOException
     *
     */
    @RequestMapping("/testUseServletAPIAsParam")
    public String testUseServletAPIAsParam(HttpServletRequest request,
            HttpServletResponse response, Writer out) throws IOException {
        System.out.println("Test servlet api ," + request + "," + response);
        response.setContentType("text/html; charset=utf-8");
        out.write("hello SpringMVC");
        return "success";
    }

运行结果页面显示:hello SpringMVC 。
这一章就讲这两个知识点。下一章我想将springmvc+spring+mybatis整合了。

點擊查看更多內容
22人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
JAVA開發工程師
手記
粉絲
333
獲贊與收藏
3452

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消