Thank you very much for the very prompt reply. If it possible, then How would I differentiate between struts1 action classes and struts2 action classes (apart from ActionSupport)?
Right now, I am trying to use struts2 action in the flow of struts1 action classes. How do I map action classes? I have struts-config.xml and struts.xml. What would be the controller in this case? Please let me know ... Thanks, Sanday Alberto A. Flores wrote: > > Yes it is! > > Sandy143 wrote: >> Hello, >> >> Can't we have the existing struts1 actions and struts2 actions in the >> same >> application? >> >> I want to retain my existing web app which is using struts 1.2.8 and >> tiles >> 1.1 >> >> The new module in the same webapp, I would like to develop using struts2 >> . >> >> Please let me know if this is something that is possible or not? >> >> Thanks, >> Sandy >> >> >> sukritthareja wrote: >>> Here are the steps for Migrating from Struts 1 to Struts 2. You are >>> required to make changes in the below mentioned layers” >>> >>> >>> 1. JARs >>> >>> - Add Struts 2 JARs in WEB-INF/lib >>> >>> >>> 2. web.xml >>> >>> - Add following elements to web.xml >>> <?xml version="1.0" encoding="UTF-8"?> >>> <web-app id="WebApp_ID" version="2.4" >>> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> >>> >>> <filter> >>> <filter-name>struts2</filter-name> >>> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher >>> </filter-class> >>> </filter> >>> >>> <filter-mapping> >>> <filter-name>struts2</filter-name> >>> <url-pattern>/*</url-pattern> >>> </filter-mapping> >>> >>> <listener> >>> <listener-class> >>> org.springframework.web.context.ContextLoaderListener >>> </listener-class> >>> </listener> >>> >>> >>> </web-app> >>> >>> 3. struts-config.xml >>> >>> - Rename “struts-config.xml” to “struts.xml”. Technically, this file in >>> Struts 2 is more streamlined. >>> >>> A typical struts-config.xml file of Struts 1 looks like >>> <?xml version="1.0" encoding="ISO-8859-1" ?> >>> <!DOCTYPE struts-config PUBLIC >>> "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" >>> "http://struts.apache.org/dtds/struts-config_1_3.dtd "> >>> >>> <struts-config> >>> >>> <form-beans> >>> <form-bean name="MyClassForm" type="forms.MyClassForm"> >>> </form-bean> >>> </form-beans> >>> >>> <action-mappings> >>> <action path="/MyClass" name="MyClassForm" >>> type="actions.MyClassAction" >>> validate="false"> >>> <forward name="success" path="/Index.jsp"/> >>> </action> >>> </action-mappings> >>> >>> <message-resources parameter="resources"/> >>> >>> </struts-config> >>> >>> - Perform the following actions: >>> >>> >>> >>> a) Replace DTD >>> b) Replace <struts-config> tag with <struts> >>> c) Include <include file="struts-default.xml"/> >>> d) Remove the <form-beans> element >>> e) Change <action-mappings> to <package name="hello-default" >>> extends="struts-default"> >>> f) Update each <action> element by >>> - Removing from <action> element, the “name” attribute. >>> - Changing the <action> “path” attribute to “name” >>> - Changing the <action> “type” attribute to “class” >>> - Changing the <forward> element into a <return> element >>> >>> The new struts.xml now looks like >>> >>> <?xml version="1.0" encoding="UTF-8" ?> >>> <!DOCTYPE struts PUBLIC >>> "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" >>> "http://struts.apache.org/dtds/struts-2.0.dtd "> >>> >>> <struts> >>> >>> <include file="struts-default.xml"/> >>> >>> <package name="hello-default" extends="struts-default"> >>> >>> <action name="MyClass" class="actions.MyClass"> >>> <result>/Index.jsp</result> >>> </action> >>> >>> </package> >>> >>> </struts> >>> >>> 4. Action Classes >>> >>> A typical ActionForm class in Struts 1 looks like >>> >>> import org.apache.struts.action.ActionForm; >>> >>> public class MyClassForm extends ValidatorForm { >>> >>> private String field1; >>> >>> public String getField1() { >>> return field1; >>> } >>> >>> public void setField1(String field1) { >>> this.field1 = field1; >>> } >>> >>> } >>> >>> A typical Action class in Struts 1 looks like >>> >>> import javax.servlet.http.*; >>> import org.apache.struts.action.*; >>> public class MyClassAction extends Action { >>> >>> public ActionForward execute( >>> ActionMapping mapping, >>> ActionForm form, >>> HttpServletRequest request, >>> HttpServletResponse response) >>> throws Exception { >>> >>> MyClassForm input = (MyClassForm) form; >>> input.setField1(“Hello”); >>> return mapping.findForward(“success”); >>> } >>> >>> } >>> >>> a) Copy all the properties from the ActionForm class to the Action >>> class, >>> and remove the ActionForm class object completely. There is no >>> ActionForm >>> in Struts-2. >>> >>> b) Make your Action class to extend ActionSupport, instead of Action. >>> While this is not mandatory, it is beneficial to do so because then any >>> POJO can be used as an Action Object. Further we then will have access >>> to >>> predefined tokens such as SUCCESS and ERROR. >>> >>> c) The fileds are now a property of the only ActionSupport class. So the >>> values can be set directly. The way of returning “success” can be >>> modified >>> to return Action.SUCCESS and return Action.ERROR >>> >>> The new Action class now looks like >>> >>> >>> import com.opensymphony.xwork2.ActionSupport; >>> >>> public class Hello extends ActionSupport { >>> >>> public String execute() throws Exception { >>> setMessage(“Hello”); >>> return Action.SUCCESS; >>> } >>> >>> private String field1; >>> >>> public String getField1() { >>> return field1; >>> } >>> public void setField1(String field1) { >>> this.field1 = field1; >>> } >>> >>> >>> d). There is a special feature included in Struts 2 that gives the >>> programmer a flexibility of invoking method other than execute(). This >>> can >>> be done by specifying the “method” attribute of <action> element inside >>> file “struts.xml”. >>> >>> <?xml version="1.0" encoding="UTF-8" ?> >>> <!DOCTYPE struts PUBLIC >>> "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" >>> "http://struts.apache.org/dtds/struts-2.0.dtd "> >>> >>> <struts> >>> >>> <include file="struts-default.xml"/> >>> >>> <package name="hello-default" extends="struts-default"> >>> >>> <action name="MyClass" class="actions.MyClass" >>> method="myMethod"> >>> <result>/Index.jsp</result> >>> </action> >>> >>> </package> >>> >>> </struts> >>> >>> 5. JSPs >>> >>> A simple JSP in Struts 1 looks like >>> >>> <%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %> >>> <html> >>> <head> >>> <title>Hello!</title> >>> </head> >>> >>> <form action="submit.action" method="post"> >>> <body> >>> Name: <input type="text" name=" field1" /><br/> >>> <bean:write name="MyClassForm" property="field1" /> >>> <input type="submit" /> >>> </body> >>> </form> >>> </html> >>> >>> - Actions to be performed in this JSP are: >>> >>> a) Replace <%@ taglib %> directive >>> b) Use new set of tags defined by the struts-tags.tld >>> >>> The new JSP in Struts 2 would now look like >>> >>> <%@ taglib prefix="s" uri="/struts-tags" %> >>> <html> >>> <head> >>> <title>Hello!</title> >>> </head> >>> <s:form action="submit.action" method="post"> >>> <body> >>> <s:textfield label="Name" name=" field1" /> >>> <s:property value="field1"/> >>> <s:submit" /> >>> </body> >>> </s:form> >>> </html> >>> >>> >>> 6. Validations >>> >>> Struts 1 developers use the Apache Commons Validator framework to >>> validate data. To enable validation, you must register the Validator >>> plug-in in the struts-config.xml file, and then make sure your own >>> ActionForms extend ValidatorForm instead of ActionForm. You can declare >>> validation rules in a validations.xml file. For example, the >>> validation.xml file you use states that a defect's description is >>> required. The 'validate' method is invoked by the Action before saving a >>> record. When the user does not provide a description, the Struts >>> ActionErrors collection is populated and its contents displayed on the >>> view page with the help of an <html:errors/> tag. >>> >>> “validation.xml” file that validates a form, is described below: >>> >>> In Struts 2, we define validation in <ActionClassName>-validation.xml >>> file. >>> >>> For example, validations defined for MyClass-validation.xml are >>> >>> <validators> >>> <field name="field1"> >>> <field-validator type="requiredstring"> >>> <message key="requiredstring" /> >>> </field-validator> >>> </field> >>> </validators> >>> >>> Regards, >>> Sukrit Thareja >>> >>> Nils-Helge Garli wrote: >>>> The section about migration in the documentation [1] would be a good >>>> place to start. >>>> >>>> [1] - http://struts.apache.org/2.0.11.1/docs/migration-guide.html >>>> >>>> Nils-H >>>> >>>> On Tue, Apr 22, 2008 at 1:17 AM, Lalchandra Rampersad >>>> <[EMAIL PROTECTED]> wrote: >>>>> How do I migrate from struts 1 to 2? >>>>> >>>>> >>>>> >>>>> Saludos >>>>> >>>>> Lalchandra Rampersaud >>>>> >>>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>> >>>> >>>> >>> >> > > -- > > Alberto A. Flores > http://www.linkedin.com/in/aflores > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > -- View this message in context: http://www.nabble.com/migration-from-struts-1-to-2-tp16819256p16945285.html Sent from the Struts - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]