Foren

custom portlet not working with struts2.0 portlet

thumbnail
Raju Komari, geändert vor 13 Jahren.

custom portlet not working with struts2.0 portlet

New Member Beiträge: 9 Beitrittsdatum: 19.01.10 Neueste Beiträge
Hi All

i want to write custom portlet with Struts2.0 (Jsr168Dispatcher portlet).The portlet class as shown in below.



public class StrutsPortlet extends Jsr168Dispatcher   {
        private static final PortletMode EDIT_DEFAULTS_MODE = new PortletMode("welcome");
	
    private static final String EDIT_DEFAULT_JSP_PATH = "/WEB-INF/edit/EditDefault.jsp";
	public void doView(RenderRequest request, RenderResponse response)
			throws PortletException, IOException {

		//response.setContentType("text/html");
		
		//PrintWriter writer = response.getWriter();
		//writer.print("VIEW mode!");
		System.out.println("in side..doView of StrutsPortlet");
		super.doView(request, response);
		
	}


	public void processAction(ActionRequest request, ActionResponse response)
			throws PortletException, IOException {
		
		System.out.println("in side..processAction of StrutsPortlet");	
		super.processAction(request, response);

	}
	
	public void doEdit(RenderRequest request, RenderResponse response)
	throws PortletException, IOException {
		System.out.println("in side..doEdit of StrutsPortlet");
		super.doEdit(request, response);

	}
	
	public void [b]doHelp(RenderRequest request, RenderResponse response)
	throws PortletException, IOException {
		System.out.println("in side..doHelp of StrutsPortlet");
		super.doHelp(request, response);

	}
	
	
	protected  void doDispatch(RenderRequest request, RenderResponse response) throws PortletException, IOException 
	{
		  System.out.println("edit_ default mode....doDispatch().");	 
		try
		{
			WindowState state = request.getWindowState();
			if (!state.equals(WindowState.MINIMIZED)) {
			    PortletMode mode = request.getPortletMode();
			    System.out.println("edit_ default mode....doDispatch()."+mode);	    
				if (CUSTOM_CONFIG_MODE.equals(mode)) {
					configure(request, response);
					return;
				}
				else if (mode.equals(EDIT_DEFAULTS_MODE)) {
					editDefault(request, response);
			    }
			}
			super.doDispatch(request, response);
		} 
		catch (PortletException e) 
		{
			
		} 
		catch (IOException e) 
		{
			
		}
	}
	
	
	
	
	public void editDefault(RenderRequest request, RenderResponse response) throws PortletException, IOException 
	{
		
	
		System.out.println("edit_ default mode.....");
		if(request.getPortletSession().getAttribute("NAMESPACE")==null) {
			request.getPortletSession().setAttribute("NAMESPACE", response.getNamespace());
			String nameSpaceID = (String) request.getPortletSession().getAttribute("NAMESPACE");
			if(nameSpaceID==null && !nameSpaceID.equalsIgnoreCase("")) {
				nameSpaceID = response.getNamespace();
				request.getPortletSession().setAttribute("NAMESPACE", response.getNamespace());
			}
		}
		
		PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(EDIT_DEFAULT_JSP_PATH);
		rd.include(request, response);

	}
	
	public void configure(RenderRequest request, RenderResponse response) throws PortletException, IOException {
	
	
	}





In Portlet.xml


<portlet id="HelloStruts2">
		<portlet-name>hellostruts2</portlet-name>
		<display-name xml:lang="EN">Hello Struts 2</display-name>
		<portlet-class>com.robisoft.portlet.struts.StrutsPortlet</portlet-class>
		<init-param>
			<name>viewNamespace</name>
			<value>/view</value>
		</init-param>
		<init-param>
			<name>defaultViewAction</name>
			<value>index</value>
		</init-param>
		<init-param>
			<name>editNamespace</name>
			<value>/edit</value>
		</init-param>
		<init-param>
			<name>defaultEditAction</name>
			<value>index</value>
		</init-param>
		
		<init-param>
			<name>helpNamespace</name>
			<value>/help</value>
		</init-param>
		<init-param>
			<name>defaultHelpAction</name>
			<value>help</value>
		</init-param>		
			
		<init-param>
		<name>welcomeNamespace</name>
		<value>/welcome</value>
		</init-param>
		
		<init-param>
		<name>defaultWelcomeAction</name>
		<value>index</value>
		</init-param>
			
		<expiration-cache>0</expiration-cache>
		<supports>
			<mime-type>text/html</mime-type>
			<portlet-mode>view</portlet-mode>
			<portlet-mode>edit</portlet-mode>
			<portlet-mode>help</portlet-mode>
			<portlet-mode>welcome</portlet-mode>
		</supports>
		<supported-locale>en</supported-locale>
		<portlet-info>
			<title>Hello Struts 2 Portlet</title>
			<short-title>Hello Struts2</short-title>
			<keywords>struts2,sample</keywords>
		</portlet-info>
	</portlet>
	
	<custom-portlet-mode>
		<portlet-mode>welcome</portlet-mode>
	</custom-portlet-mode>




But when ever portlet rendered first time doView() not executing in my portlet class, not only in view mode and also doEdit()& doHelp()are not executing in edit and help modes.

i dont know why Edit_default mode(Custom mode) not appearing in this portlet with struts2 ?

If any body knows about this struts2 with custom portlet, Please help on this..

Regards
Raju.K