我的 struts2
拦截器内有以下代码
@Override
public String intercept(ActionInvocation ai) throws Exception {
Object object = ai.getAction();
Class<? extends Object> clazz = ai.getAction().getClass();
Field[] fields = clazz.getDeclaredFields();
try {
for(Field field : fields) {
PropertyDescriptor pd = null;
try {
pd = new PropertyDescriptor(field.getName(), clazz);
} catch (Exception e) {
continue;
}
Method getMethod = pd.getReadMethod();
Method setMethod = pd.getWriteMethod();
Object o = getMethod.invoke(object);
}
} catch (Exception e) {
e.printStackTrace();
}
}
但是这句 Object o = getMethod.invoke(object);
里的 o
一直都是 null
,这是为什么?
取得したい対象フィールドは、プログラムロジック内でアクションが実行された後に取得されるのか、それともアクションオブジェクトが存在する場合のみ取得できるのか?
事前に配置されている場合は、インターセプターで呼び出しチェーンの実行を完了する必要があります。
リーリー