zoukankan      html  css  js  c++  java
  • Struts2之类型转换器的使用

    一、学习案例:通过在输入页面(input.jsp)用同一个输入框同一时候输入username和password,通过类型转换器在输出页面(output.jsp)分别输出username和password。

    二、

    a)类型转换是发生在页面数据提交之后,Action接收之前的。

    b)对于8个原生数据类型以及DateString

    Struts2都能自己主动转换。所以我们仅仅有在某些特定需求的情况下才会用到。

    c)类型转换器,一听这个名字。我们首先会想到得有这么个类(没想到的等明天再想吧。继续看)。所以我们先创建一个名为UserConverter的类。

    当它继承StrutsTypeConverter之后,这就是个类型转换器。也不继承DefaultTypeConverter,只是不推荐。StrutsTypeConverter的父类就是DefaultTypeConverter,所以推荐使用StrutsTypeConverter

    d)StrutsTypeConverter把逻辑语句分为了convertFromStringconvertToString。重写就可以。

    前者是前台到后台。后者是从后台向前台转换。

    代码:

    	@Override
    	public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
    		String str = arg1[0];
    		StringTokenizer token = new StringTokenizer(str, ";");
    		String username = token.nextToken();
    		String password = token.nextToken();
    		User user = new User();
    		user.setUsername(username);
    		user.setPassword(password);
    		return user;
    	}
    
    	@Override
    	public String convertToString(Map arg0, Object arg1) {
    		User user = (User)arg1;
    		String str = "username="+user.getUsername()+"   password="+user.getPassword();
    		return str;
    	}

    e)类型转换器有了。struts2怎么才干知道我们重写了呢,换句话就是struts2怎么知道有UserConverter的存在呢?所以我们要在UserAction中配置连接文件,即:UserAction-conversion.propertiesUserActionaction名称同样,后面是官方规定,必须这么写。内容为action中用到的属性名和转换器。

    代码:user=com.almostman.converter.UserConverter

    这样当前台数据传输到action时,会先检測属性名user是否使用类型转换器。假设使用则启动类型转换器。

    这样类型转换器才干正常执行。

    三、经验之谈:

    a) 不要钻牛角尖,比方说某些同学对一些不是必需的。相关性不大的问题死扣究竟。有时候实在搞不清的问题,就放放。在以后假设越到同类问题,非常easy就能解决。原因就是刚開始学习的人一些专业知识积累的不够,当知识积累到一定程度,像这些专业性的问题,一看就行明确。

    b) 类型转换器事实上在实际项目开发中用到的不是特别大。反正在我开发自己站点的一年时间里是没怎么用到,仅仅是有些地方的日期格式控制能用到。

    c) 学软件开发这一行,不要思维定式。更不要用感情的思维方式去解决这个问题,我们开发面对的是 机器,用的是机器语言。我们应该学会用机器的思维方式去解决这个问题。比方类型转换。我们在设计表单页面时,全然可通过页面设计上的优势杜绝使用类型转换。好比,日期输入,我们全然能够用插件取代,不让人工输入。

    四、案例项目:http://download.csdn.net/detail/u011638419/8173841

    五、每日一乐:

    一天我和同事一起值班,聊了一会天。

    结果他想起一点事,要出去。

    我看同事要走,说:哎哎哎,别走啊,再吹会牛B呗。

    他什么也没说,走到我的面前。

    对着我的耳朵,轻轻的吹了一口气,头也不回的走了。

    终于解释权归爱尚合伙人全部,转载请注明出处。

  • 相关阅读:
    HarmonyOS三方件开发指南(5)——Photoview组件
    【2021年1月20日公开课】 多设备共享涂鸦画板的鸿蒙实现方式
    看透Spring MVC源代码分析与实践
    这道面试题,90%的人都不会
    Java多线程编程核心技术
    Head First设计模式
    美团面试题:为什么能直接调用userMapper接口的方法?
    七周七并发模型
    框架VS架构,看两者异同
    京东技术解密
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/7120775.html
Copyright © 2011-2022 走看看