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]
>> 
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/migration-from-struts-1-to-2-tp16819256p16944906.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]

Reply via email to