User.java:
package lee;
/**
* @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 int name;
public int getName() {
return name;
}
public void setName(int name) {
this.name = name;
}
}
UserConverter.java:
package lee;
import java.util.Map;
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)
{
//创建一个User实例
User user = new User();
//把输入的String类型数组转换为char型数组
char c[]=values[0].toCharArray();
//只处理请求参数数组第一个数组元素,并根据输入字符的不同转化为不同的数值
int userValues=0;
if(c[0]>='a'&&c[0]<='z'){
userValues=c[0]-'a'+97;
}
if(c[0]>='A'&&c[0]<='Z'){
userValues=c[0]-'A'+65;
}
//为User实例赋值
user.setName(userValues);
//返回转换来的User实例
return user;
}
//实现将复合类型转换成字符串类型的方法
public String convertToString(Map context, Object o)
{
//将需要转换的值强制类型转换为User实例
User user = (User) o;
return "<" + user.getName()+">";
}
}
LoginAction.java:
package lee;
import org.apache.struts2.convention.annotation.Results;
import com.opensymphony.xwork2.ActionSupport;
/**
* @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:
*/
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.dispatcher.*;
@Results({
@Result(name="success",location="/welcome.jsp"),
@Result(name="error",location="/error.jsp")
})
public class LoginAction extends ActionSupport
{
public User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@Action("loginA")
public String execute() throws Exception
{
if(user.getName()<65||user.getName()>90&&user.getName()<97||user.getName()>122){ //判断输入的字符是否合法
return ERROR;} //转向失败页面
else{
return SUCCESS; //转向成功页面
}
}
}
转换字符串:
UserConverter.java:
package lee;
import java.util.Map;
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)
{
//创建一个User实例
User user = new User();
//只处理请求参数数组第一个数组元素,并将该字符串以英文逗号分割成两个字符串
String[] userValues = values[0].split(",");
//为User实例赋值
user.setName(userValues[0]);
user.setPass(userValues[1]);
//返回转换来的User实例
return user;
}
//实现将复合类型转换成字符串类型的方法
public String convertToString(Map context, Object o)
{
//将需要转换的值强制类型转换为User实例
User user = (User) o;
return "<" + user.getName() + "," + user.getPass() + ">";
}
}
LoginAction.java:
package lee;
import java.util.Date;
import com.opensymphony.xwork2.ActionSupport;
/**
* @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 extends ActionSupport
{
private User user;
private String tip;
public void setUser(User user)
{
this.user = user;
}
public User getUser()
{
return this.user;
}
public void setTip(String tip)
{
this.tip = tip;
}
public String getTip()
{
return this.tip;
}
public String execute() throws Exception
{
if (getUser().getName().equals("mr")
&& getUser().getPass().equals("mrsoft") )
{
setTip("转换成功");
return SUCCESS;
}
else
{
setTip("转换失败");
return ERROR;
}
}
}