Daniel
Daniel

Reputation: 631

Customizing controller

While reading Struts2 documentation, I encountered the passage as quoted below

customizing controller - Struts 1 lets to customize the request processor per module, Struts 2 lets to customize the request handling per action, if desired.

What do the author exactly mean. Simple examples in code form for the demonstration on both will be appreciated

Thanks in advance

Daniel

Upvotes: 0

Views: 263

Answers (1)

Adriaan Koster
Adriaan Koster

Reputation: 16209

Example of customizing the request processor in Struts 1:

<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>

This replaces the default Struts request processor with a Spring one, which matches mapped Struts actions with beans in the Spring context to perform dependency injection.

Example of delegating action handling in Struts 1:

<action-mappings>
    <action  path="/welcome" forward="/WEB-INF/pages/welcome.htm"/>
    <action  path="/searchEntry" forward="/WEB-INF/pages/search.jsp"/>
    <action  path="/searchSubmit" 
             type="org.springframework.web.struts.DelegatingActionProxy" 
             input="/searchEntry.do"
             validate="true"
             name="searchForm">
        <forward name="success" path="/WEB-INF/pages/detail.jsp"/>
        <forward name="failure" path="/WEB-INF/pages/search.jsp"/>
</action>  

Here the action type is replaced with a Spring proxy class, which looks up a matching bean (by path) in the Spring context. The purpose of this is also to inject dependencies in Struts 1 actions. It is just another approach, giving more control to Spring.

I don't know how things work in Struts 2.

Upvotes: 1

Related Questions