public class UITagExample extends ActionSupport implements Validateable { private static final long serialVersionUID =1L;
String name; Date birthday; String bio; String favoriteColor; List friends; boolean legalAge; String state; String region; File picture; String pictureContentType; String pictureFileName; String favouriteLanguage; String favouriteVehicalType = "MotorcycleKey"; String favouriteVehicalSpecific = "YamahaKey"; List leftSideCartoonCharacters; List rightSideCartoonCharacters; List favouriteLanguages = new ArrayList(); List vehicalTypeList = new ArrayList(); Map vehicalSpecificMap = new HashMap(); String thoughts; public UITagExample() { favouriteLanguages.add(new Language("EnglishKey","English Language")); favouriteLanguages.add(new Language("Frenchkey","French Language")); favouriteLanguages.add(new Language("SpanishKey","Spanish Language"));
VehicalType car = new VehicalType("CarKey","Car"); VehicalType motorcycle = new VehicalType("MotorcycleKey","Motorcycle"); vehicalTypeList.add(car); vehicalTypeList.add(motorcycle);
List cars = new ArrayList(); cars.add(new VehicalSpecific("MercedesKey","Mercedes")); cars.add(new VehicalSpecific("HondaKey","Honda")); cars.add(new VehicalSpecific("FordKey","Ford"));
List motorcycles = new ArrayList(); motorcycles.add(new VehicalSpecific("SuzukiKey","Suzuki")); motorcycles.add(new VehicalSpecific("YamahaKey","Yamahs"));
public int hashCode() { return key.hashCode(); } } }
报错提示为:
Severity and Description Path Resource Location Creation Time Id Type mismatch: cannot convert from ValueStack to OgnlValueStack TestStruts2/src/org/apache/struts2/showcase UITagExample.java line 107
鼠标指着报错的地方提示: Multiple markers at this line - Line breakpoint:UITagExample [line:107] - setFavouriteVehicalType(String) - Type mismatch:cannot convert from ValueStack to OgnlValueStack
资料代码如下: 与大家分享一个来Struts 2.0 Show Case一个例子。 package org.apache.struts2.showcase; public class UITagExample extends ActionSupport implements Validateable {
public List getVehicalSpecificList() { OgnlValueStack stack = ServletActionContext.getValueStack(ServletActionContext.getRequest()); Object vehicalType = stack.findValue("top"); if (vehicalType != null && vehicalType instanceof VehicalType) { List l = (List) vehicalSpecificMap.get(vehicalType); return l; } return Collections.EMPTY_LIST; } }