`
only_java
  • 浏览: 110368 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

关于类型转换器的疑问

阅读更多

看到集合类型转换器时,发现使用List进行类型转换后在结果显示页获取值时怎么还可以用数组形式来获得?

welcome.js

<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
    <head>
        <title>转换成功</title>
    </head>
    <body>
        转换成功!<br>
		用户名1为:<s:property value="user[0].name"/><br>
		密码1为:<s:property value="user[0].pass"/><br>
		用户名2为:<s:property value="user[1].name"/><br>
		密码2为:<s:property value="user[1].pass"/><br>
    </body>
</html>

 

 

LoginAction.java

package lee;

import java.util.List;

import com.opensymphony.xwork2.Action;

/**
 * @author  yeeku.H.lee kongyeeku@163.com
 * @version  1.0
 * <br>Copyright (C), 2005-2008, yeeku.H.Lee
 * <br>This program is protected by copyright laws.
 * <br>Program Name:
 * <br>Date: 
 */

public class LoginAction implements Action
{
	private List<User> user;
	private String tip;

	public void setUser(List<User> user) 
	{
		this.user = user; 
	}

	public void setTip(String tip)
	{
		this.tip = tip; 
	}

	public List<User> getUser() 
	{
		return (this.user); 
	}

	public String getTip() 
	{
		return (this.tip); 
	}

    public String execute() throws Exception
	{
    	
        if (getUser().get(0).getName().equals("scott")
			&& getUser().get(0).getPass().equals("tiger") )
		{
			setTip("转换成功");
            return SUCCESS;
        }
		else
		{
			setTip("转换失败");
            return ERROR;
        }
    }
}

 

UserConverter.java

package lee;

import java.util.Map;
import ognl.DefaultTypeConverter;
import org.apache.struts2.util.StrutsTypeConverter;
import java.util.List;
import java.util.ArrayList;


/**
 * @author  yeeku.H.lee kongyeeku@163.com
 * @version  1.0
 * <br>Copyright (C), 2005-2008, yeeku.H.Lee
 * <br>This program is protected by copyright laws.
 * <br>Program Name:
 * <br>Date: 
 */


public class UserConverter extends StrutsTypeConverter 
{

    public Object convertFromString(Map context, String[] values, Class toClass)
	{
		if (values.length > 1)
		{
			List<User> res=new ArrayList<User>();
			
			for (int i = 0; i < values.length ; i++ )
			{
				User user = new User();
				String[] userValues = values[i].split(",");
				user.setName(userValues[0]);
				user.setPass(userValues[1]);
				res.add(user);
			}
			return res;	
		}
		else
		{
			User user = new User();
			String[] userValues = values[0].split(",");
			user.setName(userValues[0]);
			user.setPass(userValues[1]);
			return user;
		}

    }

    @Override
    public String convertToString(Map context, Object o)
	{
		if (o instanceof User)
		{
			User user = (User)o;
			return "<" + user.getName() + "," + user.getPass() + ">";
		}
		else if (o instanceof User[])
		{
			User[] users = (User[])o;
			String result = "[";
			for (User user : users )
			{
				result += "<" + user.getName() + "," + user.getPass() + ">";
			}
			return result + "]";
		}
		else
		{
			return "";
		}

    }


} 

 

分享到:
评论

相关推荐

    文本文件编码格式转换器

    打开软件后可以看出来左上角的文件格式可以根据你的文件类型自定义添加,删除(具体的请多多动动鼠标)。下面的编码格式转换处只添加了Qt可以处理的编码格式,对于自动识别编码格式的功能没有经过大范围测试,请谨慎...

    quicktype:从JSON,Schema和GraphQL生成类型和转换器

    quicktype通过JSON,JSON Schema,TypeScript和生成强类型化的模型和序列化,从而使在许多编程语言中安全地使用JSON类型变得轻而易举。 。 阅读以获取更多介绍。 如有任何疑问,请先查看 。 支持的输入 JSON格式 ...

    MYSQL网络数据库PDF学习资源

    2.4 表达式求值和类型转换 88 2.4.1 撰写表达式 89 2.4.2 类型转换 94 第3章 MySQL SQL 语法及其用法 99 3.1 MySQL 中的SQL特征 99 3.2 MySQL 的命名规则 100 3.2.1 引用数据库的成分 100 3.2.2 SQL语句中的大小写...

    mysql网络数据库指南(中文版) part1

    2.4 表达式求值和类型转换 88 2.4.1 撰写表达式 89 2.4.2 类型转换 94 第3章 MySQL SQL 语法及其用法 99 3.1 MySQL 中的SQL特征 99 3.2 MySQL 的命名规则 100 3.2.1 引用数据库的成分 100 3.2.2 SQL语句中的...

    R软件代码转换为matlab-Comprehensive-List-Of-Unit-Checker-Libraries:用于转换,检查和管理计

    R软件代码转换为matlab 单元检查器库的完整列表 目录 简短的介绍 在2018年Spring,我(奥斯卡·本尼希·比约克曼)(OscarBennich-Björkman)撰写了我的硕士论文,作为我在乌普萨拉大学信息系统学位的一部分。 本文...

    ATI Mobility Radeon HD4570显卡驱动

     显卡类型 独立显卡  显卡型号 ATI Mobility Radeon HD4570  显存容量 256MB  显存位宽 64 位  流处理器个数 80  DirectX 10.1 如果在此机器上安装windows 2003 server Enterprise Edition SP2后,用360...

    在线图像编辑器(img2go.com)-crx插件

    将任何类型的文件转换为JPG,PNG,GIF,TIFF甚至SVG图像。您可以轻松地从视频中制作GIF动画,也可以在照片中添加文字,叠加层或滤镜。此外,您可以从不同的高级选项中进行选择,这些选项可以提高图像质量,更改颜色...

    matlab代码中fnames-eyelid_tracking:GuyTsor硕士论文中开发的eye_lid跟踪应用程序代码

    如有任何疑问,请随时与我们联系。 该库中的代码包含两种截然不同的眼睑跟踪方法-一种(在MATLAB中实现)使用主动轮廓算法在整个视频中跟踪轮廓,而另一种(在Python中实现)使用转移学习框架(DeepLabCut 2)进行...

    vuforia-spatial-core-addon:Vuforia Spatial Edge服务器的核心附加组件

    编辑器用户界面加载块,节点和工具。 首先阅读 Vuforia Spatial Toolbox和Vuforia Spatial Edge Server构成了一个共享的研究平台,可以作为一个社区探索空间计算。 该研究平台不是开箱即用的企业解决方案。 前请...

    Keras中文手册

    速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择Keras: 简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性) 支持CNN和RNN,或二者的结合 支持任意的链接方案(包括多输入和多...

    iOS ARC 完全指南

    亳无疑问,是 的未来! 鼓励开发者将手动内 存管理迁移至,同时新项目也推荐使用 可以产生更简洁 的代码,和更健壮的应用。有」,内存相关的崩溃已经成为过去! 不过现在正处于手动内存向自动内存管理的过渡期,你仍然会...

    Struts in Action中文版

    1.1. 关于本书...............................................................................................................19 1.1.1. 谁创建了 Struts?....................................................

    struts in Action

    1.1. 关于本书...............................................................................................................19 1.1.1. 谁创建了Struts?......................................................

    精通websphere MQ

    队列管理器 (Queue Manager).............................................................. 23 1.2.4 通道 (Channel)................................................................................... 24...

Global site tag (gtag.js) - Google Analytics