一个简单的需求需要自动抓取一些http request参数到上下文中,传统的做法就是写一堆过程,好一点加一个list或者map之类的容器,其实可以用枚举来做配置的:
public enum RequestParam {
V("v"), API("api"), PARAMS("data"), KEY("auth"), KEYTYPE("authType"), UA(
"ua"), TYPE("type"),TIME("t");
private String param;
public String getValue() {
return param;
}
public void setParam(String param) {
this.param = param;
}
RequestParam(String param) {
this.setParam(param);
}
}
接下来要取参数就简单了:
for (RequestParam paramEnum : RequestParam.values()) {
try {
BeanUtils.setProperty(request, paramEnum.getValue(),
getParameters().getString(
paramEnum.getValue(), ""));
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
这个方法并不高深,但是看起来却让代码结构看起来很舒服.