• 类型转换


    所谓类型转换,就是在Struts2中,前台文本输入与后台接收参数对象类型之间的转换,大多数情况下,对于基本数据类型,Strus2内建的类型转换已经能够满足要求了。

    局部类型转换与全局类型转换的唯一区别在于配置文件的名称与位置不同,其他完全一致

    局部类型转换配置文件:Action所在目录,ActionName-conversion.properties

    全局类型转换配置文件:class目录:xwork-conversion.proeprties

    类型转换器的编写

     1 package org.zln.typeConvert.conversion;
     2 
     3 import org.apache.struts2.util.StrutsTypeConverter;
     4 import org.zln.typeConvert.domain.User;
     5 
     6 import java.util.Map;
     7 
     8 /**
     9  * Created by sherry on 15-7-9.
    10  */
    11 public class UserConversion extends StrutsTypeConverter{
    12     @Override
    13     public Object convertFromString(Map context, String[] values, Class toClass) {
    14         System.out.println("String To Object");
    15         if (values.length > 1){
    16             System.out.println("String To Object 1");
    17             //如果是集合(List)的话,方法类似
    18             User[] users = new User[values.length];
    19             for (int i = 0;i < users.length;i++){
    20                 User user = new User();
    21                 String[] userValues = values[i].split(",",2);
    22                 user.setName(userValues[0]);
    23                 user.setPass(userValues[1]);
    24                 users[i] = user;
    25             }
    26             return users;
    27         }else {
    28             System.out.println("String To Object 2");
    29             User user = new User();
    30             String[] userValues = values[0].split(",",2);
    31             user.setName(userValues[0]);
    32             user.setPass(userValues[1]);
    33             return user;
    34         }
    35     }
    36 
    37     @Override
    38     public String convertToString(Map context, Object o) {
    39         System.out.println("Object To String");
    40         if (o instanceof User){
    41             System.out.println("Object To String 1");
    42             User user = (User) o;
    43             return user.getName()+":"+user.getPass();
    44         }else if (o instanceof User[]){
    45             System.out.println("Object To String 2");
    46             User[] users = (User[]) o;
    47             StringBuilder stringBuilder = new StringBuilder();
    48             stringBuilder.append("[");
    49             for (User user:users){
    50                 stringBuilder.append("<").append(user.getName()).append(",").append(user.getPass()).append(">");
    51             }
    52             stringBuilder.append("]");
    53             return stringBuilder.toString();
    54         }else {
    55             return "";
    56         }
    57     }
    58 }

    方式有很多,这里只取其中个人认为最简单的一种,就是继承 StrutsTypeConverter 类

    其他类型转换:

    参数值传递给自定义对象的成员变量

    List接收前台参数

    Map接收前台参数

  • 相关阅读:
    linux recv 返回值与linux socket 错误分析
    位域
    mysql修改root密码的方法
    mysql Plugin ‘InnoDB’ init function returned error
    centos查看版本
    CentOS 7.0 使用 yum 安装 MariaDB 及 简单配置
    CentOS 7.X 中systemctl命令用法详解
    phpMyAdmin关于PHP 5.5+ is required. Currently installed version is: 5.4.16问题
    linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
    自动设置IP地址bat脚本
  • 原文地址:https://www.cnblogs.com/sherrykid/p/4634783.html
Copyright © 2020-2023  润新知