struts2 改变portlet windowState

import java.io.IOException;
import java.util.Map;

import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletException;
import javax.portlet.PortletRequest;
import javax.portlet.PortletResponse;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.WindowState;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher;
import org.apache.struts2.portlet.servlet.PortletServletRequest;
import org.apache.struts2.portlet.servlet.PortletServletResponse;

public class Jsr168ComsysDispatcher extends Jsr168Dispatcher {
    
private WindowState windowState=null;
    
public void processAction(ActionRequest request, ActionResponse response)
            
throws PortletException, IOException {// 处理portlet 最大化
        super.processAction(request, response);
        
if (windowState!=null){
                response.setWindowState(windowState);
                windowState
=null;
            }
    }
    
public void render(RenderRequest request, RenderResponse response)
    
throws PortletException, IOException {
        
super.render(request, response);
    }
    
    
public void serviceAction(PortletRequest request, PortletResponse response, Map<String, Object> requestMap, Map<String, String[]> parameterMap,
            Map
<String, Object> sessionMap, Map<String, Object> applicationMap, String portletNamespace,
            Integer phase) 
throws PortletException {
        
super.serviceAction(request, response, applicationMap, parameterMap, applicationMap, applicationMap, portletNamespace, phase);
         HttpServletRequest servletRequest 
= new PortletServletRequest(request, getPortletContext());
         HttpServletResponse servletResponse 
= new PortletServletResponse(response);
         
if (servletRequest.getAttribute("WindowState.comsysStatus")!=null){
             
if ((WindowState.MAXIMIZED).equals(servletRequest.getAttribute("WindowState.comsysStatus"))){
                 windowState
=WindowState.MAXIMIZED;
             }
else if ((WindowState.MINIMIZED).equals(servletRequest.getAttribute("WindowState.comsysStatus"))){
                 windowState
=WindowState.MINIMIZED;
             }
else if ((WindowState.NORMAL).equals(servletRequest.getAttribute("WindowState.comsysStatus"))){
                 windowState
=WindowState.NORMAL;
             }
else{
                 windowState
=null;
             }
         }
else{
             windowState
=null;
         }
    }
}
原文地址:https://www.cnblogs.com/jifeng/p/2115734.html