Roller:EntryAdd

 

Roller的EntryAdd Action,继承自 : ActionSupport ---> UIAction --- > EntryBase ---> EntryAdd,

 

UIAction 同时实现了 : UIActionPreparable,  UISecurityEnforced 接口

 

在struts配置中,定义了一个Interceptor:

            <interceptor name="UIActionInterceptor" 
                         class="org.apache.roller.weblogger.ui.struts2.util.UIActionInterceptor" />

这个Interceptor的主要工作就是对Action进行赋值:User 和 Weblog。

 

UIActionInterceptor的主要代码:

    public String intercept(ActionInvocation invocation) throws Exception {
        
        log.debug("Entering UIActionInterceptor");
        
        final Object action = invocation.getAction();
        final ActionContext context = invocation.getInvocationContext();
        
        HttpServletRequest request = (HttpServletRequest) context.get(HTTP_REQUEST);
        
        // is this one of our own UIAction classes?
        if (action instanceof UIAction) {
            
            log.debug("action is a UIAction, setting relevant attributes");
            
            UIAction theAction = (UIAction) action;
            
            // 在Action中设置登陆的用户名

            // extract the authenticated user and set it
            RollerSession rses = RollerSession.getRollerSession(request);
            if(rses != null) {
                theAction.setAuthenticatedUser(rses.getAuthenticatedUser());
            }
            
            // 在Action中设置Weblog

            // extract the work weblog and set it
            String weblogHandle = theAction.getWeblog();
            if(!StringUtils.isEmpty(weblogHandle)) {
                Weblog weblog = null;
                try {
                    UserManager mgr = WebloggerFactory.getWeblogger().getUserManager();
                    weblog = mgr.getWebsiteByHandle(weblogHandle);
                    if(weblog != null) {
                        theAction.setActionWeblog(weblog);
                    }
                } catch(Exception e) {
                    log.error("Error looking up action weblog - "+weblogHandle, e);
                }
            }
        }
        
        return invocation.invoke();
    }
 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值