67,538
社区成员
发帖
与我相关
我的任务
分享
LoginAction。java
public class LoginAction implements Action {
private Map user;
private String tip;
public void setTip(String tip) {
this.tip = tip;
}
public String getTip() {
return (this.tip);
}
public String execute() throws Exception {
System.out.println("((User)getUser().get(0)).getName()================"
+ ((User) getUser().get(0)).getName());
if (((User) getUser().get(0)).getName().equals("scott")
&& ((User) getUser().get(0)).getPass().equals("tiger")) {
setTip("转换成功");
return SUCCESS;
} else {
setTip("转换失败");
return ERROR;
}
}
public Map getUser() {
return user;
}
public void setUser(Map user) {
this.user = user;
}
}
===========================================
User。java
package com.cai.map;
/**
* @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 User {
private String name;
private String pass;
public void setName(String name) {
this.name = name;
}
public void setPass(String pass) {
this.pass = pass;
}
public String getName() {
return (this.name);
}
public String getPass() {
return (this.pass);
}
}
==============================
UserConverter。java
package com.cai.map;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.struts2.util.StrutsTypeConverter;
/**
* @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) {
System.out.println("values.length:" + values.length);
if (values.length > 1) {
Map result = new HashMap();
for (int i = 0; i < values.length; i++) {
User u = new User();
String[] uservalues = values[i].split(",");
u.setName(uservalues[0]);
u.setPass(uservalues[1]);
result.put(u.getName(), u);
}
return result;
} else {
// 长度为1的情况
User user = new User();
String[] uservalues = values[0].split(",");
user.setName(uservalues[0]);
user.setPass(uservalues[1]);
return user;
}
}
// 复合类型转换成字符串类型
public String convertToString(Map context, Object o) {
// 单个的User类型
if (o instanceof User) {
User u = (User) o;
return u.getName() + "," + u.getPass();
} else if (o instanceof Map) {
Map u = (Map) o;
String result = "[";
Set iter = u.keySet();
while (iter.iterator().hasNext()) {
User user = (User) iter.iterator().next();
result += "<" + user.getName() + "," + user.getPass() + ">";
}
return result + "]";
} else {
return "";
}
}
}
==========================================
LoginAction-conversion.properties
key_user=com.cai.map.User
Element_user=com.cai.map.User
==========================================
xwork-conversion.properties
com.cai.map.User=com.cai.map.UserConverter
===========================================
struts。xml
<package name="s" extends="struts-default">
<action name="map"
class="com.cai.map.LoginAction">
<result name="success">/mapwelcome.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
=========================================
login。jsp
<s:form action="map">
<s:textfield name="user" label="用户"></s:textfield>
<s:submit value="登陆"></s:submit>
</s:form>
=======================================
mapwelcome.jsp
<s:property value="user[0].name"/><br>
<s:property value="user[0].pass"/>
====================================
以上这些配置我的工程。但是总是报错。找不出高手指点。
报错如下:
java.lang.ClassCastException: com.cai.map.User
Caused by: java.lang.NullPointerException
at com.cai.map.LoginAction.execute(LoginAction.java:37)