您的位置:首页 > 编程语言 > Java开发

Struts2-学习笔记系列(12)-set集合

2016-06-04 22:36 645 查看

3.1编写类型转换器 只需实现 converFromString方法

public class UserConvert extends StrutsTypeConverter {
@Override
public Object convertFromString(Map map, String[] strings, Class aClass) {
Set result = new HashSet();
for (int i = 0; i < strings.length; i++) {
User user = new User();
String[] vals = strings[0].split(",");
user.setName(vals[0]);
user.setPwd(vals[1]);
result.add(user);
}
return result;
}

@Override
public String convertToString(Map map, Object o) {
if (o.getClass() == Set.class) {

Set users = (Set) o;
String result = "[";
for (Object obj : users) {
User user = (User) obj;
if (user != null && user.getName() != null) {
result += "<" + user.getName() + "," + user.getPwd() + ">";
}

}
return result + "]";
} else {
return "";
}

}

}


3.2告知struts在转换的时候,使用元素的name作为索引.在域中实现

public class User {
public User() {
}

private String name;
private String pwd;

public String getPwd() {
return pwd;
}

public void setPwd(String pwd) {
this.pwd = pwd;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

@Override
public boolean equals(Object obj) {

//        表明:action中的set user,使用元素name属性进行区分(set集合不能有重复项)

if (this==obj) {
return true;
}
if (obj != null && obj.getClass() == User.class) {
User user = (User) obj;
return this.getName().equals(user.getName());
}
return false;
}

@Override
public int hashCode() {
return name.hashCode();
}
}


3.3注册转换器

users=convert.UserConvert

#指定action中users集合的索引(key)是name

KeyProperty_users=name

注意: 使用的是 == 而不是 equal

if (this==obj) {

return true;

}

3.4录入数据

<s:form action="login">
<s:textfield name="users" label="第一个用户信息"/>
<s:textfield name="users" label="第二个用户信息"/>
<tr>
<td colspan="2"><s:submit value="转换" theme="simple"/>
<s:reset value="重填" theme="simple"/></td>
</tr>
</s:form>




3.5访问set元素

<s:property value="users"/>
<!-- 访问users集合属性里索引属性值为zcx的元素的name属性-->
用户zcx的用户名为:<s:property value="users('zcx').name"/><br/>
<!-- 访问users集合属性里索引属性值为zjj的元素的name属性-->
zjj:<s:property value="users('zjj').name"/><br/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: