关于类型转换器的疑问

看到集合类型转换器时,发现使用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 "";
		}

    }


} 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值