Search in sources :

Example 1 with ActionFilter

use of org.nutz.mvc.ActionFilter in project nutz by nutzam.

the class ActionFiltersProcessor method init.

public void init(NutConfig config, ActionInfo ai) throws Throwable {
    ObjectInfo<? extends ActionFilter>[] filterInfos = ai.getFilterInfos();
    if (null != filterInfos) {
        for (int i = 0; i < filterInfos.length; i++) {
            ActionFilter filter = evalObj(config, filterInfos[i]);
            filters.add(filter);
            if (filter instanceof Processor) {
                Processor processor = (Processor) filter;
                if (proxyProcessor == null) {
                    proxyProcessor = processor;
                    lastProcessor = processor;
                } else {
                    processor.setNext(proxyProcessor);
                    proxyProcessor = processor;
                }
            }
        }
    }
}
Also used : Processor(org.nutz.mvc.Processor) ActionFilter(org.nutz.mvc.ActionFilter) ObjectInfo(org.nutz.mvc.ObjectInfo)

Example 2 with ActionFilter

use of org.nutz.mvc.ActionFilter in project nutz by nutzam.

the class ActionFiltersProcessor method process.

public void process(ActionContext ac) throws Throwable {
    for (ActionFilter filter : filters) {
        View view = filter.match(ac);
        if (null != view) {
            ac.setMethodReturn(view);
            renderView(ac);
            return;
        }
    }
    if (proxyProcessor == null) {
        doNext(ac);
    } else {
        if (lastProcessor != null)
            lastProcessor.setNext(next);
        proxyProcessor.process(ac);
    }
}
Also used : ActionFilter(org.nutz.mvc.ActionFilter) View(org.nutz.mvc.View)

Example 3 with ActionFilter

use of org.nutz.mvc.ActionFilter in project nutz by nutzam.

the class Loadings method evalActionFilters.

@SuppressWarnings({ "unchecked", "rawtypes" })
public static void evalActionFilters(ActionInfo ai, Filters filters) {
    if (null != filters) {
        List<ObjectInfo<? extends ActionFilter>> list = new ArrayList<ObjectInfo<? extends ActionFilter>>(filters.value().length);
        for (By by : filters.value()) {
            list.add(new ObjectInfo(by.type(), by.args()));
        }
        ai.setFilterInfos(list.toArray(new ObjectInfo[list.size()]));
    }
}
Also used : By(org.nutz.mvc.annotation.By) AdaptBy(org.nutz.mvc.annotation.AdaptBy) ArrayList(java.util.ArrayList) ActionFilter(org.nutz.mvc.ActionFilter) ObjectInfo(org.nutz.mvc.ObjectInfo)

Aggregations

ActionFilter (org.nutz.mvc.ActionFilter)3 ObjectInfo (org.nutz.mvc.ObjectInfo)2 ArrayList (java.util.ArrayList)1 Processor (org.nutz.mvc.Processor)1 View (org.nutz.mvc.View)1 AdaptBy (org.nutz.mvc.annotation.AdaptBy)1 By (org.nutz.mvc.annotation.By)1