1 18 19 package org.apache.struts.webapp.tiles.test; 20 21 import javax.servlet.http.HttpServletRequest ; 22 import javax.servlet.http.HttpServletResponse ; 23 import org.apache.struts.action.Action; 24 import org.apache.struts.action.ActionForm; 25 import org.apache.struts.action.ActionForward; 26 import org.apache.struts.action.ActionMapping; 27 import org.apache.struts.tiles.ComponentContext; 28 import org.apache.struts.tiles.ComponentDefinition; 29 import org.apache.struts.tiles.DefinitionsFactoryException; 30 import org.apache.struts.tiles.DefinitionsUtil; 31 import org.apache.struts.tiles.FactoryNotFoundException; 32 import org.apache.struts.tiles.NoSuchDefinitionException; 33 34 35 41 42 public final class TestActionTileAction extends Action { 43 44 45 47 48 63 public ActionForward execute( 64 ActionMapping mapping, 65 ActionForm form, 66 HttpServletRequest request, 67 HttpServletResponse response) 68 throws Exception { 69 70 ComponentContext context = ComponentContext.getContext( request ); 72 if( context == null ) 73 { 74 request.setAttribute( "actionError", "Can't get component context."); 75 return (mapping.findForward("failure")); 76 } 77 String param; 79 80 param = (String )context.getAttribute( "set-definition-name" ); 82 if( param != null ) 83 { 84 try 85 { 86 ComponentDefinition definition = DefinitionsUtil.getDefinition( param, request, getServlet().getServletContext() ); 88 DefinitionsUtil.setActionDefinition( request, definition); 90 } 91 catch( FactoryNotFoundException ex ) 92 { 93 request.setAttribute( "actionError", "Can't get definition factory."); 94 return (mapping.findForward("failure")); 95 } 96 catch( NoSuchDefinitionException ex ) 97 { 98 request.setAttribute( "actionError", "Can't get definition '" + param +"'."); 99 return (mapping.findForward("failure")); 100 } 101 catch( DefinitionsFactoryException ex ) 102 { 103 request.setAttribute( "actionError", "General error '" + ex.getMessage() +"'."); 104 return (mapping.findForward("failure")); 105 } 106 } 107 108 param = (String )context.getAttribute( "set-attribute" ); 110 if( param != null ) 111 { 112 context.putAttribute( param, context.getAttribute( "set-attribute-value" )); 113 } 115 return (mapping.findForward("success")); 116 117 } 118 119 120 } 121 | Popular Tags |