Categories: Struts2Tutorial

Struts Hibernate Integration Example with Spring

<div dir&equals;"ltr" style&equals;"text-align&colon; justify&semi;">&NewLine;<div dir&equals;"ltr" style&equals;"text-align&colon; justify&semi;">&NewLine;<div dir&equals;"ltr" style&equals;"text-align&colon; justify&semi;">&NewLine;<div dir&equals;"ltr" style&equals;"text-align&colon; justify&semi;">&NewLine;<div dir&equals;"ltr" style&equals;"text-align&colon; justify&semi;">&NewLine;<p>In this example we will describe the integration of Struts 2 with Hibernate as well as using Spring  and Tile in this example&period; We recommend firstly you have a look to previous examples <b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;struts2-spring-3-integration-example&sol;" target&equals;"&lowbar;blank" rel&equals;"noopener">Struts with Spring Integration Example<&sol;a><&sol;b> and  <b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;struts2-integration-with-tiles2-spring3&sol;" target&equals;"&lowbar;blank" rel&equals;"noopener">Struts2 with Tiles2 Integration Example<&sol;a><&sol;b>&period;<&sol;p>&NewLine;<h2 dir&equals;"ltr">Spring 5 Design Pattern Book<&sol;h2>&NewLine;<div dir&equals;"ltr" style&equals;"color&colon; &num;20124d&semi; font-family&colon; 'calibri' &comma; sans-serif&semi; font-size&colon; 13pt&semi; text-align&colon; justify&semi;">You could purchase my <strong>Spring 5 book<&sol;strong> that is with title name &&num;8220&semi;<strong>Spring 5 Design Pattern<&sol;strong>&&num;8220&semi;&period; This book is available on the <a href&equals;"https&colon;&sol;&sol;www&period;amazon&period;in&sol;Spring-Design-Patterns-Dinesh-Rajput&sol;dp&sol;1788299450&sol;ref&equals;sr&lowbar;1&lowbar;1&quest;ie&equals;UTF8&amp&semi;qid&equals;1507925340&amp&semi;sr&equals;8-1&amp&semi;keywords&equals;spring&plus;5&plus;design&plus;pattern" target&equals;"&lowbar;blank" rel&equals;"noopener"><strong>Amazon<&sol;strong><&sol;a> and <a href&equals;"https&colon;&sol;&sol;www&period;packtpub&period;com&sol;application-development&sol;spring-5-design-patterns" target&equals;"&lowbar;blank" rel&equals;"noopener"><strong>Packt<&sol;strong><&sol;a> publisher website&period; Learn various <strong>design patterns<&sol;strong> and <strong>best practices<&sol;strong> in Spring 5 and use them to solve common design problems&period; You could use author discount to purchase this book by using code- &&num;8220&semi;<strong>AUTHDIS40<&sol;strong>&&num;8220&semi;&period;<&sol;div>&NewLine;<div dir&equals;"ltr"><&sol;div>&NewLine;<div dir&equals;"ltr"><a href&equals;"https&colon;&sol;&sol;www&period;packtpub&period;com&sol;application-development&sol;spring-5-design-patterns" target&equals;"&lowbar;blank" rel&equals;"noopener"><img class&equals;"aligncenter wp-image-3053 size-medium" title&equals;"Spring-5-Design-Pattern" src&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;wp-content&sol;uploads&sol;2013&sol;03&sol;Spring-5-design-pattern-243x300&period;jpg" width&equals;"243" height&equals;"300" &sol;><&sol;a><&sol;div>&NewLine;<p>Hibernate is a high-performance Object&sol;Relational persistence and query service which is licensed under the open source GNU Lesser General Public License &lpar;LGPL&rpar; and is free to download&period; If you are not familiar with Hibernate then you can check our <b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;hibernate-3-on-baby-steps&sol;" target&equals;"&lowbar;blank" rel&equals;"noopener">Hibernate tutorial<&sol;a><&sol;b>&period; And if you are not familiar with Spring then you can check our <b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;spring-tutorial&sol;" target&equals;"&lowbar;blank" rel&equals;"noopener">Spring tutorial<&sol;a><&sol;b>&period;<&sol;p>&NewLine;<h2>Step 1&colon; Create a Database DOJDB on MySQL Database and also we create User table on this database&period;<&sol;h2>&NewLine;<pre class&equals;"highlight">CREATE TABLE User&lpar; &NewLine; ID BIGINT NOT NULL AUTO&lowbar;INCREMENT&comma; &NewLine; USERNAME VARCHAR&lpar;20&rpar; NOT NULL&comma; &NewLine; AGE BIGINT NOT NULL&comma; &NewLine; GENDER VARCHAR&lpar;20&rpar; NOT NULL&comma; &NewLine; JOBTYPE VARCHAR&lpar;20&rpar; NOT NULL &NewLine; HOBBIES VARCHAR&lpar;20&rpar; NOT NULL &NewLine; PRIMARY KEY &lpar;ID&rpar; &NewLine;&rpar;&semi; &NewLine;<&sol;pre>&NewLine;<p><b>Step 2&colon; Create a database&period;properties for database configuration information in the resources folder under src folder in the created project&period;<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">database&period;driver&equals;com&period;mysql&period;jdbc&period;Driver &NewLine;database&period;url&equals;jdbc&colon;mysql&colon;&sol;&sol;localhost&colon;3306&sol;DOJDB &NewLine;database&period;user&equals;root &NewLine;database&period;password&equals;root &NewLine;hibernate&period;dialect&equals;org&period;hibernate&period;dialect&period;MySQLDialect &NewLine;hibernate&period;show&lowbar;sql&equals;true &NewLine;hibernate&period;hbm2ddl&period;auto&equals;update &NewLine;<&sol;pre>&NewLine;<p><b>Step 3&colon; <&sol;b>Create a Dynamic Web Project with a name <b><i>Struts2Hibernate3Spring3Tile2Integration <&sol;i><&sol;b>and create packages <i>com&period;dineshonjava&period;struts2&period;action&comma; com&period;dineshonjava&period;struts2&period;bean&comma; com&period;dineshonjava&period;struts2&period;dao&comma; com&period;dineshonjava&period;struts2&period;service&comma; com&period;dineshonjava&period;struts2&period;model&comma; com&period;dineshonjava&period;struts2&period;utils<&sol;i> under the <i>src <&sol;i>folder in the created project&period;<&sol;p>&NewLine;<p><b>Step 4&colon; <&sol;b>Add below mentioned Struts 2&comma; Hibernate 3 and Spring 3 related libraries and other libraries into the folder <i><b>WebRoot&sol;WEB-INF&sol;lib<&sol;b><&sol;i>&period;<&sol;p>&NewLine;<div class&equals;"separator" style&equals;"clear&colon; both&semi; text-align&colon; center&semi;"><img src&equals;"http&colon;&sol;&sol;dineshonjava&period;com&sol;wp-content&sol;uploads&sol;2013&sol;08&sol;66666&period;png" border&equals;"0" &sol;><&sol;div>&NewLine;<p><b>Step 5&colon;<&sol;b> Create a Java class <b>UserAction<&sol;b>&comma; <b>UserBean<&sol;b>&comma; <b>User<&sol;b>&comma; <b>UserDao<&sol;b>&comma; <b>UserDaoImpl<&sol;b>&comma; <b>UserService<&sol;b>&comma; <b>UserServiceImpl<&sol;b>&comma; <b>CommonUtility <&sol;b>under the respective packages&period;<&sol;p>&NewLine;<p><b>Step 6&colon; <&sol;b>Create Spring configuration files <i><b>web&period;xml&comma; applicationContext&period;xml&comma; tiles-def&period;xml <&sol;b><&sol;i>under the <i>WebRoot&sol;WEB-INF&sol;<&sol;i> and <b>struts&period;xml <&sol;b>under <i><b>src&sol;resources<&sol;b><&sol;i> folders&period;<&sol;p>&NewLine;<p><b>Step 7&colon; <&sol;b>Create View files under the<b> &sol;WebRoot&sol;<&sol;b> folder&period; Create a view file <b><i>mainTemplate&period;jsp&comma; users&period;jsp&comma; body&period;jsp&comma; menu&period;jsp&comma; haeder&period;jsp&comma; footer&period;jsp <&sol;i><&sol;b> etc&period;<&sol;p>&NewLine;<p><b>Step 8&colon; Project Structure <&sol;b><&sol;p>&NewLine;<div class&equals;"separator" style&equals;"clear&colon; both&semi; text-align&colon; center&semi;"><img src&equals;"http&colon;&sol;&sol;dineshonjava&period;com&sol;wp-content&sol;uploads&sol;2013&sol;08&sol;7777&period;png" border&equals;"0" &sol;><&sol;div>&NewLine;<h2><b>APPLICATION ARCHITECTURE<&sol;b><&sol;h2>&NewLine;<p>We will have a layered architecture for our demo application&period; The database will be accessed by a Data Access layer popularly called as DAO Layer&period; This layer will use Hibernate API to interact with database&period; The DAO layer will be invoked by a service layer&period; In our application we will have a Service interface called UserService&period;<&sol;p>&NewLine;<div class&equals;"separator" style&equals;"clear&colon; both&semi; text-align&colon; center&semi;"><img src&equals;"http&colon;&sol;&sol;dineshonjava&period;com&sol;wp-content&sol;uploads&sol;2013&sol;08&sol;spring3-hibernate-application-architecture-with-tiles&period;png" border&equals;"0" &sol;><&sol;div>&NewLine;<p><b>Step 9&colon; <&sol;b>Hibernate Configuration file with Spring Dependencies<br &sol;>&NewLine;<i><b>applicationContext&period;xml<&sol;b><&sol;i><&sol;p>&NewLine;<pre class&equals;"highlight">&lt&semi;&quest;xml version&equals;"1&period;0" encoding&equals;"UTF-8"&quest;&gt&semi; &NewLine;&lt&semi;beans xmlns&equals;"http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;beans" &NewLine; xmlns&colon;xsi&equals;"http&colon;&sol;&sol;www&period;w3&period;org&sol;2001&sol;XMLSchema-instance" &NewLine; xmlns&colon;context&equals;"http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;context" &NewLine; xmlns&colon;tx&equals;"http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;tx" &NewLine; xsi&colon;schemaLocation&equals;" &NewLine;http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;beans &NewLine;http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;beans&sol;spring-beans-3&period;0&period;xsd &NewLine;http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;context &NewLine;http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;context&sol;spring-context-3&period;0&period;xsd &NewLine;http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;tx &NewLine;http&colon;&sol;&sol;www&period;springframework&period;org&sol;schema&sol;tx&sol;spring-tx-3&period;0&period;xsd"&gt&semi; &NewLine; &NewLine; &lt&semi;context&colon;component-scan base-package&equals;"com&period;dineshonjava&period;struts2" &sol;&gt&semi; &NewLine; &NewLine; &lt&semi;&excl;-- Database Configuration Start here--&gt&semi; &NewLine; &lt&semi;context&colon;property-placeholder location&equals;"classpath&colon;database&period;properties"&sol;&gt&semi; &NewLine; &lt&semi;tx&colon;annotation-driven transaction-manager&equals;"hibernateTransactionManager"&sol;&gt&semi; &NewLine; &lt&semi;bean class&equals;"org&period;springframework&period;jdbc&period;datasource&period;DriverManagerDataSource" id&equals;"dataSource"&gt&semi; &NewLine; &lt&semi;property name&equals;"driverClassName" value&equals;"&dollar;&lbrace;database&period;driver&rcub;"&gt&semi;&lt&semi;&sol;property&gt&semi; &NewLine; &lt&semi;property name&equals;"url" value&equals;"&dollar;&lbrace;database&period;url&rcub;"&gt&semi;&lt&semi;&sol;property&gt&semi; &NewLine; &lt&semi;property name&equals;"username" value&equals;"&dollar;&lbrace;database&period;user&rcub;"&gt&semi;&lt&semi;&sol;property&gt&semi; &NewLine; &lt&semi;property name&equals;"password" value&equals;"&dollar;&lbrace;database&period;password&rcub;"&gt&semi;&lt&semi;&sol;property&gt&semi; &NewLine; &lt&semi;&sol;bean&gt&semi; &NewLine; &lt&semi;bean class&equals;"org&period;springframework&period;orm&period;hibernate3&period;annotation&period;AnnotationSessionFactoryBean" id&equals;"sessionFactory"&gt&semi; &NewLine; &lt&semi;property name&equals;"dataSource" ref&equals;"dataSource"&gt&semi;&lt&semi;&sol;property&gt&semi; &NewLine; &lt&semi;property name&equals;"annotatedClasses"&gt&semi; &NewLine; &lt&semi;list&gt&semi; &NewLine; &lt&semi;value&gt&semi;com&period;dineshonjava&period;struts2&period;model&period;User&lt&semi;&sol;value&gt&semi; &NewLine; &lt&semi;&sol;list&gt&semi; &NewLine; &lt&semi;&sol;property&gt&semi; &NewLine; &lt&semi;property name&equals;"hibernateProperties"&gt&semi; &NewLine; &lt&semi;props&gt&semi; &NewLine; &lt&semi;prop key&equals;"hibernate&period;dialect"&gt&semi;org&period;hibernate&period;dialect&period;MySQLDialect&lt&semi;&sol;prop&gt&semi; &NewLine; &lt&semi;prop key&equals;"hibernate&period;show&lowbar;sql"&gt&semi;&dollar;&lbrace;hibernate&period;show&lowbar;sql&rcub;&lt&semi;&sol;prop&gt&semi; &NewLine; &lt&semi;prop key&equals;"hibernate&period;hbm2ddl&period;auto"&gt&semi;&dollar;&lbrace;hibernate&period;hbm2ddl&period;auto&rcub; &lt&semi;&sol;prop&gt&semi; &NewLine; &lt&semi;&sol;props&gt&semi; &NewLine; &lt&semi;&sol;property&gt&semi; &NewLine; &lt&semi;&sol;bean&gt&semi; &NewLine; &NewLine; &lt&semi;bean class&equals;"org&period;springframework&period;orm&period;hibernate3&period;HibernateTransactionManager" id&equals;"hibernateTransactionManager"&gt&semi; &NewLine; &lt&semi;property name&equals;"sessionFactory" ref&equals;"sessionFactory"&gt&semi;&lt&semi;&sol;property&gt&semi; &NewLine; &lt&semi;&sol;bean&gt&semi; &NewLine; &lt&semi;&excl;-- Database Configuration End Here--&gt&semi; &NewLine; &NewLine; &NewLine; &lt&semi;bean id&equals;"user" class&equals;"com&period;dineshonjava&period;struts2&period;action&period;UserAction"&sol;&gt&semi; &NewLine; &lt&semi;bean id&equals;"userBean" class&equals;"com&period;dineshonjava&period;struts2&period;bean&period;UserBean"&sol;&gt&semi; &NewLine;&lt&semi;&sol;beans&gt&semi; &NewLine;<&sol;pre>&NewLine;<p>Let us go through the hibernate configuration only because rest is Spring dependency already know in <b><a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;2012&sol;06&sol;spring-30-baby-step-to-learn&period;html" target&equals;"&lowbar;blank" rel&equals;"noopener">spring tutorial<&sol;a><&sol;b>&period; First&comma; we declared that we are using MySQL driver&period; Then we declared the jdbc url for connecting to the database&period; Then we declared the connection&&num;8217&semi;s username&comma; password and pool size&period; We also indicated that we would like to see the SQL in the log file by turning on &&num;8220&semi;show&lowbar;sql&&num;8221&semi; to true&period; Please go through the hibernate tutorial to understand what these properties mean&period; Finally&comma; we set the mapping class to <i><b>com&period;dineshonjava&period;struts2&period;model&period;User <&sol;b><&sol;i>which we will create in this chapter&period;<&sol;p>&NewLine;<p><b>Step 10&colon; <&sol;b>Create Action class and Other classes related to Application&period;<br &sol;>&NewLine;<b>UserBean&period;java<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">package com&period;dineshonjava&period;struts2&period;bean&semi; &NewLine; &NewLine;&sol;&ast;&ast; &NewLine; &ast; &commat;author Dinesh Rajput &NewLine; &ast; &NewLine; &ast;&sol; &NewLine;public class UserBean &lbrace; &NewLine; private String userName&semi; &NewLine; private Long userAge&semi; &NewLine; private String userGender&semi; &NewLine; private String userJob&semi; &NewLine; private String &lbrack;&rsqb;userHobbies&semi; &NewLine; public String getUserName&lpar;&rpar; &lbrace; &NewLine; return userName&semi; &NewLine; &rcub; &NewLine; public void setUserName&lpar;String userName&rpar; &lbrace; &NewLine; this&period;userName &equals; userName&semi; &NewLine; &rcub; &NewLine; public Long getUserAge&lpar;&rpar; &lbrace; &NewLine; return userAge&semi; &NewLine; &rcub; &NewLine; public void setUserAge&lpar;Long userAge&rpar; &lbrace; &NewLine; this&period;userAge &equals; userAge&semi; &NewLine; &rcub; &NewLine; public String getUserGender&lpar;&rpar; &lbrace; &NewLine; return userGender&semi; &NewLine; &rcub; &NewLine; public void setUserGender&lpar;String userGender&rpar; &lbrace; &NewLine; this&period;userGender &equals; userGender&semi; &NewLine; &rcub; &NewLine; public String getUserJob&lpar;&rpar; &lbrace; &NewLine; return userJob&semi; &NewLine; &rcub; &NewLine; public void setUserJob&lpar;String userJob&rpar; &lbrace; &NewLine; this&period;userJob &equals; userJob&semi; &NewLine; &rcub; &NewLine; public String&lbrack;&rsqb; getUserHobbies&lpar;&rpar; &lbrace; &NewLine; return userHobbies&semi; &NewLine; &rcub; &NewLine; public void setUserHobbies&lpar;String&lbrack;&rsqb; userHobbies&rpar; &lbrace; &NewLine; this&period;userHobbies &equals; userHobbies&semi; &NewLine; &rcub; &NewLine;&rcub; &NewLine;<&sol;pre>&NewLine;<p><b>User&period;java<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">package com&period;dineshonjava&period;struts2&period;model&semi; &NewLine; &NewLine;import java&period;io&period;Serializable&semi; &NewLine; &NewLine;import javax&period;persistence&period;Column&semi; &NewLine;import javax&period;persistence&period;Entity&semi; &NewLine;import javax&period;persistence&period;GeneratedValue&semi; &NewLine;import javax&period;persistence&period;GenerationType&semi; &NewLine;import javax&period;persistence&period;Id&semi; &NewLine;import javax&period;persistence&period;Table&semi; &NewLine; &NewLine;&sol;&ast;&ast; &NewLine; &ast; &commat;author Dinesh Rajput &NewLine; &ast; &NewLine; &ast;&sol; &NewLine;&commat;Entity &NewLine;&commat;Table&lpar;name&equals;"User"&rpar; &NewLine;public class User implements Serializable &lbrace; &NewLine; &NewLine; private static final long serialVersionUID &equals; 1L&semi; &NewLine; &NewLine; &commat;Id &NewLine; &commat;GeneratedValue&lpar;strategy&equals;GenerationType&period;AUTO&rpar; &NewLine; &commat;Column&lpar;name &equals; "id"&rpar; &NewLine; private Long userId&semi; &NewLine; &commat;Column&lpar;name&equals;"username"&rpar; &NewLine; private String userName&semi; &NewLine; &commat;Column&lpar;name&equals;"age"&rpar; &NewLine; private Long userAge&semi; &NewLine; &commat;Column&lpar;name&equals;"gender"&rpar; &NewLine; private String userGender&semi; &NewLine; &commat;Column&lpar;name&equals;"jobtype"&rpar; &NewLine; private String userJobType&semi; &NewLine; &commat;Column&lpar;name&equals;"Hobbies"&rpar; &NewLine; private String userHobbies&semi; &NewLine; public Long getUserId&lpar;&rpar; &lbrace; &NewLine; return userId&semi; &NewLine; &rcub; &NewLine; public void setUserId&lpar;Long userId&rpar; &lbrace; &NewLine; this&period;userId &equals; userId&semi; &NewLine; &rcub; &NewLine; public String getUserName&lpar;&rpar; &lbrace; &NewLine; return userName&semi; &NewLine; &rcub; &NewLine; public void setUserName&lpar;String userName&rpar; &lbrace; &NewLine; this&period;userName &equals; userName&semi; &NewLine; &rcub; &NewLine; public Long getUserAge&lpar;&rpar; &lbrace; &NewLine; return userAge&semi; &NewLine; &rcub; &NewLine; public void setUserAge&lpar;Long userAge&rpar; &lbrace; &NewLine; this&period;userAge &equals; userAge&semi; &NewLine; &rcub; &NewLine; public String getUserGender&lpar;&rpar; &lbrace; &NewLine; return userGender&semi; &NewLine; &rcub; &NewLine; public void setUserGender&lpar;String userGender&rpar; &lbrace; &NewLine; this&period;userGender &equals; userGender&semi; &NewLine; &rcub; &NewLine; public String getUserJobType&lpar;&rpar; &lbrace; &NewLine; return userJobType&semi; &NewLine; &rcub; &NewLine; public void setUserJobType&lpar;String userJobType&rpar; &lbrace; &NewLine; this&period;userJobType &equals; userJobType&semi; &NewLine; &rcub; &NewLine; public String getUserHobbies&lpar;&rpar; &lbrace; &NewLine; return userHobbies&semi; &NewLine; &rcub; &NewLine; public void setUserHobbies&lpar;String userHobbies&rpar; &lbrace; &NewLine; this&period;userHobbies &equals; userHobbies&semi; &NewLine; &rcub; &NewLine;&rcub; &NewLine;<&sol;pre>&NewLine;<p><b>UserDao&period;java<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">package com&period;dineshonjava&period;struts2&period;dao&semi; &NewLine; &NewLine;import java&period;util&period;List&semi; &NewLine; &NewLine;import com&period;dineshonjava&period;struts2&period;model&period;User&semi; &NewLine; &NewLine;&sol;&ast;&ast; &NewLine; &ast; &commat;author Dinesh Rajput &NewLine; &ast; &NewLine; &ast;&sol; &NewLine;public interface UserDao &lbrace; &NewLine; void saveUser&lpar;User user&rpar;&semi; &NewLine; &NewLine; List&lt&semi;User&gt&semi; getUserList&lpar;&rpar;&semi; &NewLine;&rcub; &NewLine;<&sol;pre>&NewLine;<p><b>UserDaoImpl&period;java<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">package com&period;dineshonjava&period;struts2&period;dao&semi; &NewLine; &NewLine;import java&period;util&period;List&semi; &NewLine; &NewLine;import org&period;hibernate&period;SessionFactory&semi; &NewLine;import org&period;springframework&period;beans&period;factory&period;annotation&period;Autowired&semi; &NewLine;import org&period;springframework&period;stereotype&period;Repository&semi; &NewLine; &NewLine;import com&period;dineshonjava&period;struts2&period;model&period;User&semi; &NewLine; &NewLine;&sol;&ast;&ast; &NewLine; &ast; &commat;author Dinesh Rajput &NewLine; &ast; &NewLine; &ast;&sol; &NewLine;&commat;Repository&lpar;"userDao"&rpar; &NewLine;public class UserDaoImpl implements UserDao &lbrace; &NewLine; &NewLine; &commat;Autowired &NewLine; private SessionFactory sessionFactory&semi; &NewLine; &NewLine; &commat;Override &NewLine; public void saveUser&lpar;User user&rpar; &lbrace; &NewLine; sessionFactory&period;getCurrentSession&lpar;&rpar;&period;saveOrUpdate&lpar;user&rpar;&semi; &NewLine; &rcub; &NewLine; &NewLine; &commat;SuppressWarnings&lpar;"unchecked"&rpar; &NewLine; &commat;Override &NewLine; public List&lt&semi;User&gt&semi; getUserList&lpar;&rpar; &lbrace; &NewLine; return &lpar;List&lt&semi;User&gt&semi;&rpar; sessionFactory&period;getCurrentSession&lpar;&rpar;&period;createCriteria&lpar;User&period;class&rpar;&period;list&lpar;&rpar;&semi; &NewLine; &rcub; &NewLine;&rcub; &NewLine;<&sol;pre>&NewLine;<p><b>UserService&period;java<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">package com&period;dineshonjava&period;struts2&period;service&semi; &NewLine; &NewLine;import java&period;util&period;List&semi; &NewLine; &NewLine;import com&period;dineshonjava&period;struts2&period;model&period;User&semi; &NewLine; &NewLine;&sol;&ast;&ast; &NewLine; &ast; &commat;author Dinesh Rajput &NewLine; &ast; &NewLine; &ast;&sol; &NewLine;public interface UserService &lbrace; &NewLine; void saveUser&lpar;User user&rpar;&semi; &NewLine; &NewLine; List&lt&semi;User&gt&semi; getUserList&lpar;&rpar;&semi; &NewLine;&rcub; &NewLine; &NewLine;<&sol;pre>&NewLine;<p><b>UserServiceImpl&period;java<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">package com&period;dineshonjava&period;struts2&period;service&semi; &NewLine; &NewLine;import java&period;util&period;List&semi; &NewLine; &NewLine;import org&period;springframework&period;beans&period;factory&period;annotation&period;Autowired&semi; &NewLine;import org&period;springframework&period;stereotype&period;Service&semi; &NewLine;import org&period;springframework&period;transaction&period;annotation&period;Propagation&semi; &NewLine;import org&period;springframework&period;transaction&period;annotation&period;Transactional&semi; &NewLine; &NewLine;import com&period;dineshonjava&period;struts2&period;dao&period;UserDao&semi; &NewLine;import com&period;dineshonjava&period;struts2&period;model&period;User&semi; &NewLine; &NewLine;&sol;&ast;&ast; &NewLine; &ast; &commat;author Dinesh Rajput &NewLine; &ast; &NewLine; &ast;&sol; &NewLine;&commat;Service&lpar;"userService"&rpar; &NewLine;&commat;Transactional&lpar;propagation &equals; Propagation&period;SUPPORTS&comma; readOnly &equals; true&rpar; &NewLine;public class UserServiceImpl implements UserService &lbrace; &NewLine; &NewLine; &commat;Autowired &NewLine; private UserDao userDao&semi; &NewLine; &NewLine; &commat;Override &NewLine; &commat;Transactional&lpar;propagation &equals; Propagation&period;REQUIRED&comma; readOnly &equals; false&rpar; &NewLine; public void saveUser&lpar;User user&rpar; &lbrace; &NewLine; userDao&period;saveUser&lpar;user&rpar;&semi; &NewLine; &rcub; &NewLine; &NewLine; &commat;Override &NewLine; public List&lt&semi;User&gt&semi; getUserList&lpar;&rpar; &lbrace; &NewLine; return userDao&period;getUserList&lpar;&rpar;&semi; &NewLine; &rcub; &NewLine;&rcub; &NewLine;<&sol;pre>&NewLine;<p><b>CommonUtility&period;java<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">package com&period;dineshonjava&period;struts2&period;utils&semi; &NewLine; &NewLine;import java&period;util&period;ArrayList&semi; &NewLine;import java&period;util&period;List&semi; &NewLine; &NewLine;import com&period;dineshonjava&period;struts2&period;bean&period;UserBean&semi; &NewLine;import com&period;dineshonjava&period;struts2&period;model&period;User&semi; &NewLine; &NewLine;&sol;&ast;&ast; &NewLine; &ast; &commat;author Dinesh Rajput &NewLine; &ast; &NewLine; &ast;&sol; &NewLine;public class CommonUtility &lbrace; &NewLine; public static User createModel&lpar;UserBean userBean&rpar;&lbrace; &NewLine; User user &equals; new User&lpar;&rpar;&semi; &NewLine; user&period;setUserName&lpar;userBean&period;getUserName&lpar;&rpar;&rpar;&semi; &NewLine; user&period;setUserAge&lpar;userBean&period;getUserAge&lpar;&rpar;&rpar;&semi; &NewLine; user&period;setUserGender&lpar;userBean&period;getUserGender&lpar;&rpar;&rpar;&semi; &NewLine; user&period;setUserJobType&lpar;userBean&period;getUserJob&lpar;&rpar;&rpar;&semi; &NewLine; user&period;setUserHobbies&lpar;convertArrayToCsv&lpar;userBean&period;getUserHobbies&lpar;&rpar;&rpar;&rpar;&semi; &NewLine; return user&semi; &NewLine; &rcub; &NewLine; &NewLine; public static List&lt&semi;UserBean&gt&semi; createUserBeanList&lpar;List&lt&semi;User&gt&semi; users&rpar;&lbrace; &NewLine; List&lt&semi;UserBean&gt&semi; beans &equals; new ArrayList&lt&semi;UserBean&gt&semi;&lpar;&rpar;&semi; &NewLine; UserBean userBean &equals; null&semi; &NewLine; for&lpar;User user &colon; users&rpar;&lbrace; &NewLine; userBean &equals; new UserBean&lpar;&rpar;&semi; &NewLine; userBean&period;setUserName&lpar;user&period;getUserName&lpar;&rpar;&rpar;&semi; &NewLine; userBean&period;setUserAge&lpar;user&period;getUserAge&lpar;&rpar;&rpar;&semi; &NewLine; userBean&period;setUserGender&lpar;user&period;getUserGender&lpar;&rpar;&rpar;&semi; &NewLine; userBean&period;setUserJob&lpar;user&period;getUserJobType&lpar;&rpar;&rpar;&semi; &NewLine; userBean&period;setUserHobbies&lpar;convertCsvToArr&lpar;user&period;getUserHobbies&lpar;&rpar;&rpar;&rpar;&semi; &NewLine; beans&period;add&lpar;userBean&rpar;&semi; &NewLine; &rcub; &NewLine; return beans&semi; &NewLine; &NewLine; &rcub; &NewLine; public static String convertArrayToCsv&lpar;String &lbrack;&rsqb; arr&rpar;&lbrace; &NewLine; String csv &equals; ""&semi; &NewLine; for&lpar;String value &colon; arr&rpar;&lbrace; &NewLine; csv &plus;&equals; value&plus;"&comma;"&semi; &NewLine; &rcub; &NewLine; return csv&semi; &NewLine; &rcub; &NewLine; public static String&lbrack;&rsqb; convertCsvToArr&lpar;String csv&rpar;&lbrace; &NewLine; String &lbrack;&rsqb; values &equals; csv&period;split&lpar;"&comma;"&rpar;&semi; &NewLine; return values&semi; &NewLine; &rcub; &NewLine;&rcub; &NewLine;<&sol;pre>&NewLine;<p><b>UserAction&period;java<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">package com&period;dineshonjava&period;struts2&period;action&semi; &NewLine; &NewLine;import java&period;util&period;ArrayList&semi; &NewLine;import java&period;util&period;List&semi; &NewLine; &NewLine;import org&period;springframework&period;beans&period;factory&period;annotation&period;Autowired&semi; &NewLine; &NewLine;import com&period;dineshonjava&period;struts2&period;bean&period;UserBean&semi; &NewLine;import com&period;dineshonjava&period;struts2&period;model&period;User&semi; &NewLine;import com&period;dineshonjava&period;struts2&period;service&period;UserService&semi; &NewLine;import com&period;dineshonjava&period;struts2&period;utils&period;CommonUtility&semi; &NewLine;import com&period;opensymphony&period;xwork2&period;ActionSupport&semi; &NewLine;import com&period;opensymphony&period;xwork2&period;ModelDriven&semi; &NewLine; &NewLine;&sol;&ast;&ast; &NewLine; &ast; &commat;author Dinesh Rajput &NewLine; &ast; &NewLine; &ast;&sol; &NewLine;public class UserAction extends ActionSupport implements ModelDriven&lt&semi;UserBean&gt&semi;&lbrace; &NewLine; &NewLine; private static final long serialVersionUID &equals; 1L&semi; &NewLine; &NewLine; &commat;Autowired &NewLine; private UserBean userBean&semi; &NewLine; &commat;Autowired &NewLine; private UserService userService&semi; &NewLine; private List&lt&semi;UserBean&gt&semi; users&semi; &NewLine; &NewLine; public String execute&lpar;&rpar; &lbrace; &NewLine; users &equals; CommonUtility&period;createUserBeanList&lpar;userService&period;getUserList&lpar;&rpar;&rpar;&semi; &NewLine; return "user"&semi; &NewLine; &rcub; &NewLine; &NewLine; public String addUser&lpar;&rpar;&lbrace; &NewLine; userService&period;saveUser&lpar;CommonUtility&period;createModel&lpar;userBean&rpar;&rpar;&semi; &NewLine; users &equals; CommonUtility&period;createUserBeanList&lpar;userService&period;getUserList&lpar;&rpar;&rpar;&semi; &NewLine; return "addUser"&semi; &NewLine; &rcub; &NewLine; public String listUser&lpar;&rpar;&lbrace; &NewLine; users &equals; CommonUtility&period;createUserBeanList&lpar;userService&period;getUserList&lpar;&rpar;&rpar;&semi; &NewLine; return "users"&semi; &NewLine; &rcub; &NewLine; &NewLine; &commat;Override &NewLine; public UserBean getModel&lpar;&rpar; &lbrace; &NewLine; return userBean&semi; &NewLine; &rcub; &NewLine; public String alia&lpar;&rpar; &lbrace; &NewLine; return "alia"&semi; &NewLine; &rcub; &NewLine; public String madhuri&lpar;&rpar; &lbrace; &NewLine; return "madhuri"&semi; &NewLine; &rcub; &NewLine; public String user&lpar;&rpar; &lbrace; &NewLine; return "user"&semi; &NewLine; &rcub; &NewLine; &NewLine; public List&lt&semi;UserBean&gt&semi; getUsers&lpar;&rpar; &lbrace; &NewLine; return users&semi; &NewLine; &rcub; &NewLine; &NewLine; public void setUsers&lpar;List&lt&semi;UserBean&gt&semi; users&rpar; &lbrace; &NewLine; this&period;users &equals; users&semi; &NewLine; &rcub; &NewLine; &NewLine;&rcub; &NewLine;<&sol;pre>&NewLine;<p><b>Create view files&colon;<&sol;b><br &sol;>&NewLine;Let us now create the <i><b>mainTemplate&period;jsp <&sol;b><&sol;i>view file with the following content&colon;<&sol;p>&NewLine;<pre class&equals;"highlight">&lt&semi;&percnt;&commat; taglib uri&equals;"http&colon;&sol;&sol;tiles&period;apache&period;org&sol;tags-tiles" prefix&equals;"tiles"&percnt;&gt&semi; &NewLine;&lt&semi;&excl;DOCTYPE HTML PUBLIC "-&sol;&sol;W3C&sol;&sol;DTD HTML 4&period;01 Transitional&sol;&sol;EN" &NewLine; "http&colon;&sol;&sol;www&period;w3&period;org&sol;TR&sol;html4&sol;loose&period;dtd"&gt&semi; &NewLine;&lt&semi;html&gt&semi; &NewLine; &NewLine;&lt&semi;head&gt&semi; &NewLine;&lt&semi;meta http-equiv&equals;"Content-Type" content&equals;"text&sol;html&semi; charset&equals;UTF-8"&gt&semi; &NewLine;&lt&semi;title&gt&semi;&lt&semi;tiles&colon;insertAttribute name&equals;"title" ignore&equals;"true"&gt&semi;&lt&semi;&sol;tiles&colon;insertAttribute&gt&semi; &NewLine;&lt&semi;&sol;title&gt&semi; &NewLine;&lt&semi;&sol;head&gt&semi; &NewLine; &NewLine;&lt&semi;body&gt&semi; &NewLine; &lt&semi;table border&equals;"1"&gt&semi; &NewLine; &lt&semi;tr&gt&semi; &NewLine; &lt&semi;td colspan&equals;"2"&gt&semi;&lt&semi;tiles&colon;insertAttribute name&equals;"header"&gt&semi;&lt&semi;&sol;tiles&colon;insertAttribute&gt&semi;&lt&semi;br&sol;&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;&sol;tr&gt&semi; &NewLine; &lt&semi;tr&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;tiles&colon;insertAttribute name&equals;"menu" &sol;&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;tiles&colon;insertAttribute name&equals;"body" &sol;&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;&sol;tr&gt&semi; &NewLine; &lt&semi;tr&gt&semi; &NewLine; &lt&semi;td colspan&equals;"2"&gt&semi;&lt&semi;tiles&colon;insertAttribute name&equals;"footer" &sol;&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;&sol;tr&gt&semi; &NewLine; &lt&semi;&sol;table&gt&semi; &NewLine;&lt&semi;&sol;body&gt&semi; &NewLine;&lt&semi;&sol;html&gt&semi; &NewLine;<&sol;pre>&NewLine;<p><b>body&period;jsp<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">&lt&semi;&percnt;&commat; page language&equals;"java" contentType&equals;"text&sol;html&semi; charset&equals;ISO-8859-1" &NewLine; pageEncoding&equals;"ISO-8859-1"&percnt;&gt&semi; &NewLine;&lt&semi;&percnt;&commat; taglib prefix&equals;"s" uri&equals;"&sol;struts-tags"&percnt;&gt&semi; &NewLine;&lt&semi;&excl;DOCTYPE html PUBLIC "-&sol;&sol;W3C&sol;&sol;DTD HTML 4&period;01 Transitional&sol;&sol;EN" &NewLine;"http&colon;&sol;&sol;www&period;w3&period;org&sol;TR&sol;html4&sol;loose&period;dtd"&gt&semi; &NewLine; &NewLine;&lt&semi;html&gt&semi; &NewLine;&lt&semi;head&gt&semi; &NewLine;&lt&semi;style type&equals;"text&sol;css"&gt&semi; &NewLine;b&lbrace;color&colon;navy&semi; background-color&colon; orange&semi;&rcub; &NewLine;&lt&semi;&sol;style&gt&semi; &NewLine;&lt&semi;title&gt&semi;Struts2-Spring-Tiles integration &vert; dineshonjava&period;com&lt&semi;&sol;title&gt&semi; &NewLine;&lt&semi;&sol;head&gt&semi; &NewLine;&lt&semi;body&gt&semi; &NewLine; &NewLine; &lt&semi;h2&gt&semi;Add User&lt&semi;&sol;h2&gt&semi;&lt&semi;b&gt&semi; &NewLine; &lt&semi;s&colon;form action&equals;"addUsermenu"&gt&semi; &NewLine; &lt&semi;s&colon;textfield name&equals;"userName" key&equals;"user&period;name" &sol;&gt&semi; &NewLine; &lt&semi;s&colon;textfield name&equals;"userAge" key&equals;"user&period;age" value&equals;""&sol;&gt&semi; &NewLine; &lt&semi;s&colon;radio name&equals;"userGender" key&equals;"user&period;gender" list&equals;"&lbrace;'Male'&comma;'Female'&rcub;" &sol;&gt&semi; &NewLine; &lt&semi;s&colon;select name&equals;"userJob" key&equals;"user&period;job" list&equals;"&percnt;&lbrace;&num;&lbrace;'Software'&colon;'Software'&comma;'Hardware'&colon;'Hardware'&comma;'Networking'&colon;'Networking'&comma;'Marketing'&colon;'Marketing'&rcub;&rcub;"&sol;&gt&semi; &NewLine; &lt&semi;s&colon;checkboxlist name&equals;"userHobbies" key&equals;"user&period;hobby" list&equals;"&lbrace;'Cricket'&comma;'Football'&comma;'Drawing'&comma;'Cooking'&comma;'Driving'&comma;'Movie'&rcub;" &sol;&gt&semi; &NewLine; &lt&semi;s&colon;submit key&equals;"submit" align&equals;"center"&sol;&gt&semi; &NewLine; &lt&semi;&sol;s&colon;form&gt&semi; &NewLine; &lt&semi;&sol;b&gt&semi; &NewLine; &lt&semi;s&colon;if test&equals;"&percnt;&lbrace;users&period;isEmpty&lpar;&rpar;&rcub;"&gt&semi; &NewLine; &lt&semi;&sol;s&colon;if&gt&semi; &NewLine; &lt&semi;s&colon;else&gt&semi; &NewLine; &lt&semi;b&gt&semi;List of Users&lt&semi;&sol;b&gt&semi; &NewLine; &lt&semi;table border&equals;"1"&gt&semi; &NewLine; &lt&semi;tr&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;b&gt&semi;Name&lt&semi;&sol;b&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;b&gt&semi;Age&lt&semi;&sol;b&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;b&gt&semi;Gender&lt&semi;&sol;b&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;b&gt&semi;Job Type&lt&semi;&sol;b&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;b&gt&semi;Hobbies&lt&semi;&sol;b&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;&sol;tr&gt&semi; &NewLine; &lt&semi;s&colon;iterator value&equals;"users"&gt&semi; &NewLine; &lt&semi;tr&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;s&colon;property value&equals;"userName"&sol;&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;s&colon;property value&equals;"userAge"&sol;&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;s&colon;property value&equals;"userGender"&sol;&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;s&colon;property value&equals;"userJob"&sol;&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;s&colon;property value&equals;"userHobbies"&sol;&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;&sol;tr&gt&semi; &NewLine; &lt&semi;&sol;s&colon;iterator&gt&semi; &NewLine; &lt&semi;&sol;table&gt&semi; &NewLine; &lt&semi;&sol;s&colon;else&gt&semi; &NewLine; &lt&semi;&sol;body&gt&semi; &NewLine;&lt&semi;&sol;html&gt&semi; &NewLine;<&sol;pre>&NewLine;<p><b>menu&period;jsp<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">&lt&semi;&percnt;&commat; page language&equals;"java" contentType&equals;"text&sol;html&semi; charset&equals;ISO-8859-1" &NewLine; pageEncoding&equals;"ISO-8859-1"&percnt;&gt&semi; &NewLine;&lt&semi;&percnt;&commat; taglib prefix&equals;"s" uri&equals;"&sol;struts-tags"&percnt;&gt&semi; &NewLine; &lt&semi;a href&equals;"&lt&semi;s&colon;url action&equals;"usermenu"&sol;&gt&semi;"&gt&semi; &lt&semi;h2&gt&semi;Add User&lt&semi;&sol;h2&gt&semi;&lt&semi;&sol;a&gt&semi;&lt&semi;br&gt&semi; &NewLine; &lt&semi;a href&equals;"&lt&semi;s&colon;url action&equals;"aliamenu"&sol;&gt&semi;"&gt&semi;&lt&semi;h2&gt&semi;Alia Bhatt&lt&semi;&sol;h2&gt&semi;&lt&semi;&sol;a&gt&semi;&lt&semi;br&gt&semi; &NewLine; &lt&semi;a href&equals;"&lt&semi;s&colon;url action&equals;"madhurimenu"&sol;&gt&semi;"&gt&semi;&lt&semi;h2&gt&semi;Madhuri Dixit&lt&semi;&sol;h2&gt&semi;&lt&semi;&sol;a&gt&semi;&lt&semi;br&gt&semi; &NewLine; &NewLine;<&sol;pre>&NewLine;<p><b>footer&period;jsp<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">&lt&semi;center&gt&semi;&lt&semi;p&gt&semi;&lt&semi;h2&gt&semi;Copyright &amp&semi;copy&semi; 2013 dineshonjava&period;com&lt&semi;&sol;h2&gt&semi;&lt&semi;&sol;p&gt&semi; &lt&semi;&sol;center&gt&semi; &NewLine; &NewLine;<&sol;pre>&NewLine;<p><b>header&period;jsp<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">&lt&semi;table&gt&semi; &NewLine; &lt&semi;tr&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;img src&equals;"http&colon;&sol;&sol;2&period;bp&period;blogspot&period;com&sol;-rBLnvKuVDO0&sol;UWBnJJ4n1yI&sol;AAAAAAAADCQ&sol;Vh&lowbar;cVJ34JFw&sol;s1600&sol;new-logo&period;png" &sol;&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;&lt&semi;h1&gt&semi;&lt&semi;span style&equals;"background-color&colon; &num;FFFFcc"&gt&semi;Struts2-Hibernate3-Tiles2-Spring3 integration&lt&semi;&sol;span&gt&semi;&lt&semi;&sol;h1&gt&semi;&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;&sol;tr&gt&semi; &NewLine;&lt&semi;&sol;table&gt&semi; &NewLine;<&sol;pre>&NewLine;<p><b>users&period;jsp<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">&lt&semi;&percnt;&commat; page language&equals;"java" contentType&equals;"text&sol;html&semi; charset&equals;ISO-8859-1" &NewLine; pageEncoding&equals;"ISO-8859-1"&percnt;&gt&semi; &NewLine;&lt&semi;&excl;DOCTYPE html PUBLIC "-&sol;&sol;W3C&sol;&sol;DTD HTML 4&period;01 Transitional&sol;&sol;EN" "http&colon;&sol;&sol;www&period;w3&period;org&sol;TR&sol;html4&sol;loose&period;dtd"&gt&semi; &NewLine;&lt&semi;html&gt&semi; &NewLine;&lt&semi;head&gt&semi; &NewLine;&lt&semi;meta http-equiv&equals;"Content-Type" content&equals;"text&sol;html&semi; charset&equals;ISO-8859-1"&gt&semi; &NewLine;&lt&semi;title&gt&semi;Insert title here&lt&semi;&sol;title&gt&semi; &NewLine;&lt&semi;&sol;head&gt&semi; &NewLine;&lt&semi;body&gt&semi; &NewLine; &lt&semi;a href&equals;"user"&gt&semi;Struts2Spring3Hibernate3Tiles Example&lt&semi;&sol;a&gt&semi; &NewLine;&lt&semi;&sol;body&gt&semi; &NewLine;&lt&semi;&sol;html&gt&semi; &NewLine;<&sol;pre>&NewLine;<p><b>madhuri&period;jsp<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">&lt&semi;img src&equals;"http&colon;&sol;&sol;www&period;topnews&period;in&sol;files&sol;Madhuri-Dixit&lowbar;10&period;jpg" height&equals;"430" width&equals;"500" alt&equals;"Madhuri Dixit"&sol;&gt&semi; &NewLine; &NewLine;<&sol;pre>&NewLine;<p><b>alia&period;jsp<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">&lt&semi;img src&equals;"http&colon;&sol;&sol;cdntopics&period;onepakistan&period;com&sol;wp-content&sol;uploads&sol;2012&sol;10&sol;Alia-Bhatt1&period;jpg" alt&equals;"Alia Bhatt"&sol;&gt&semi; &NewLine;<&sol;pre>&NewLine;<p><b>Struts Configuration&colon;<&sol;b><br &sol;>&NewLine;Let us put it all together using <b><i>struts&period;xml<&sol;i><&sol;b>&colon;<&sol;p>&NewLine;<pre class&equals;"highlight">&lt&semi;&quest;xml version&equals;"1&period;0" encoding&equals;"UTF-8" &quest;&gt&semi; &NewLine;&lt&semi;&excl;DOCTYPE struts PUBLIC &NewLine; "-&sol;&sol;Apache Software Foundation&sol;&sol;DTD Struts Configuration 2&period;0&sol;&sol;EN" &NewLine; "http&colon;&sol;&sol;struts&period;apache&period;org&sol;dtds&sol;struts-2&period;0&period;dtd"&gt&semi; &NewLine; &NewLine;&lt&semi;struts&gt&semi; &NewLine; &lt&semi;constant name&equals;"struts&period;enable&period;DynamicMethodInvocation" value&equals;"false" &sol;&gt&semi; &NewLine; &lt&semi;constant name&equals;"struts&period;devMode" value&equals;"true" &sol;&gt&semi; &NewLine; &lt&semi;constant name&equals;"struts&period;custom&period;i18n&period;resources" value&equals;"myapp" &sol;&gt&semi; &NewLine; &NewLine; &lt&semi;package name&equals;"user" extends&equals;"struts-default" namespace&equals;"&sol;"&gt&semi; &NewLine; &lt&semi;result-types&gt&semi; &NewLine; &lt&semi;result-type name&equals;"tiles" class&equals;"org&period;apache&period;struts2&period;views&period;tiles&period;TilesResult" &sol;&gt&semi; &NewLine; &lt&semi;&sol;result-types&gt&semi; &NewLine; &lt&semi;action name&equals;"user" class&equals;"user" method&equals;"execute"&gt&semi; &NewLine; &lt&semi;result name&equals;"user" type&equals;"tiles"&gt&semi;mainTemplate&lt&semi;&sol;result&gt&semi; &NewLine; &lt&semi;&sol;action&gt&semi; &NewLine; &lt&semi;action name&equals;"&ast;menu" class&equals;"user" method&equals;"&lbrace;1&rcub;"&gt&semi; &NewLine; &lt&semi;result name&equals;"user" type&equals;"tiles"&gt&semi;mainTemplate&lt&semi;&sol;result&gt&semi; &NewLine; &lt&semi;result name&equals;"madhuri" type&equals;"tiles"&gt&semi;madhuri&lt&semi;&sol;result&gt&semi; &NewLine; &lt&semi;result name&equals;"alia" type&equals;"tiles"&gt&semi;alia&lt&semi;&sol;result&gt&semi; &NewLine; &lt&semi;result name&equals;"addUser" type&equals;"tiles"&gt&semi;mainTemplate&lt&semi;&sol;result&gt&semi; &NewLine; &lt&semi;&sol;action&gt&semi; &NewLine; &lt&semi;&sol;package&gt&semi; &NewLine; &lt&semi;&sol;struts&gt&semi; &NewLine;<&sol;pre>&NewLine;<p><b>myapp&period;properties<&sol;b><&sol;p>&NewLine;<pre class&equals;"highlight">user&period;name&equals;User Name &NewLine;user&period;age&equals;User Age &NewLine;user&period;gender&equals;Gender &NewLine;user&period;job&equals;Job Type &NewLine;user&period;hobby&equals;Hobbies &NewLine;submit&equals;Add User &NewLine;<&sol;pre>&NewLine;<p><b>Tiles Configuration file-<&sol;b><br &sol;>&NewLine;<i><b>tiles-def&period;xml<&sol;b><&sol;i><&sol;p>&NewLine;<pre class&equals;"highlight">&lt&semi;&quest;xml version&equals;"1&period;0" encoding&equals;"UTF-8" &quest;&gt&semi; &NewLine; &NewLine;&lt&semi;&excl;DOCTYPE tiles-definitions PUBLIC &NewLine; "-&sol;&sol;Apache Software Foundation&sol;&sol;DTD Tiles Configuration 2&period;0&sol;&sol;EN" &NewLine; "http&colon;&sol;&sol;tiles&period;apache&period;org&sol;dtds&sol;tiles-config&lowbar;2&lowbar;0&period;dtd"&gt&semi; &NewLine; &NewLine;&lt&semi;tiles-definitions&gt&semi; &NewLine; &NewLine; &lt&semi;definition name&equals;"mainTemplate" template&equals;"&sol;mainTemplate&period;jsp"&gt&semi; &NewLine; &lt&semi;put-attribute name&equals;"title" value&equals;"User Registration Form"&sol;&gt&semi; &NewLine; &lt&semi;put-attribute name&equals;"header" value&equals;"&sol;header&period;jsp"&sol;&gt&semi; &NewLine; &lt&semi;put-attribute name&equals;"menu" value&equals;"&sol;menu&period;jsp"&sol;&gt&semi; &NewLine; &lt&semi;put-attribute name&equals;"body" value&equals;"&sol;body&period;jsp"&sol;&gt&semi; &NewLine; &lt&semi;put-attribute name&equals;"footer" value&equals;"&sol;footer&period;jsp"&sol;&gt&semi; &NewLine; &lt&semi;&sol;definition&gt&semi; &NewLine; &NewLine; &lt&semi;definition name&equals;"alia" extends&equals;"mainTemplate"&gt&semi; &NewLine; &lt&semi;put-attribute name&equals;"title" value&equals;"Alia Bhatt"&sol;&gt&semi; &NewLine; &lt&semi;put-attribute name&equals;"body" value&equals;"&sol;alia&period;jsp"&sol;&gt&semi; &NewLine; &lt&semi;&sol;definition&gt&semi; &NewLine; &NewLine; &lt&semi;definition name&equals;"madhuri" extends&equals;"mainTemplate"&gt&semi; &NewLine; &lt&semi;put-attribute name&equals;"title" value&equals;"Madhuri Dixit"&sol;&gt&semi; &NewLine; &lt&semi;put-attribute name&equals;"body" value&equals;"&sol;madhuri&period;jsp"&sol;&gt&semi; &NewLine; &lt&semi;&sol;definition&gt&semi; &NewLine; &NewLine; &lt&semi;definition name&equals;"success" extends&equals;"mainTemplate"&gt&semi; &NewLine; &lt&semi;put-attribute name&equals;"title" value&equals;"User Added Successfully"&sol;&gt&semi; &NewLine; &lt&semi;put-attribute name&equals;"body" value&equals;"&sol;success&period;jsp"&sol;&gt&semi; &NewLine; &lt&semi;&sol;definition&gt&semi; &NewLine; &NewLine;&lt&semi;&sol;tiles-definitions&gt&semi; &NewLine;<&sol;pre>&NewLine;<p><b>create deployment descriptor<&sol;b><br &sol;>&NewLine;<i><b>web&period;xml<&sol;b><&sol;i><&sol;p>&NewLine;<pre class&equals;"highlight">&lt&semi;&quest;xml version&equals;"1&period;0" encoding&equals;"UTF-8"&quest;&gt&semi; &NewLine;&lt&semi;web-app xmlns&colon;xsi&equals;"http&colon;&sol;&sol;www&period;w3&period;org&sol;2001&sol;XMLSchema-instance" xmlns&equals;"http&colon;&sol;&sol;java&period;sun&period;com&sol;xml&sol;ns&sol;javaee" xmlns&colon;web&equals;"http&colon;&sol;&sol;java&period;sun&period;com&sol;xml&sol;ns&sol;javaee&sol;web-app&lowbar;2&lowbar;5&period;xsd" xsi&colon;schemaLocation&equals;"http&colon;&sol;&sol;java&period;sun&period;com&sol;xml&sol;ns&sol;javaee http&colon;&sol;&sol;java&period;sun&period;com&sol;xml&sol;ns&sol;javaee&sol;web-app&lowbar;3&lowbar;0&period;xsd" id&equals;"WebApp&lowbar;ID" version&equals;"3&period;0"&gt&semi; &NewLine; &lt&semi;display-name&gt&semi;Struts2Hibernate3Spring3Tile2Integration&lt&semi;&sol;display-name&gt&semi; &NewLine; &lt&semi;welcome-file-list&gt&semi; &NewLine; &lt&semi;welcome-file&gt&semi;users&period;jsp&lt&semi;&sol;welcome-file&gt&semi; &NewLine; &lt&semi;&sol;welcome-file-list&gt&semi; &NewLine; &lt&semi;context-param&gt&semi; &NewLine; &lt&semi;param-name&gt&semi; &NewLine; org&period;apache&period;tiles&period;impl&period;BasicTilesContainer&period;DEFINITIONS&lowbar;CONFIG &NewLine; &lt&semi;&sol;param-name&gt&semi; &NewLine; &lt&semi;param-value&gt&semi; &NewLine; &sol;WEB-INF&sol;tiles-def&period;xml &NewLine; &lt&semi;&sol;param-value&gt&semi; &NewLine; &lt&semi;&sol;context-param&gt&semi; &NewLine; &lt&semi;listener&gt&semi; &NewLine; &lt&semi;listener-class&gt&semi; &NewLine; org&period;springframework&period;web&period;context&period;ContextLoaderListener &NewLine; &lt&semi;&sol;listener-class&gt&semi; &NewLine; &lt&semi;&sol;listener&gt&semi; &NewLine; &lt&semi;listener&gt&semi; &NewLine; &lt&semi;listener-class&gt&semi; &NewLine; org&period;apache&period;struts2&period;tiles&period;StrutsTilesListener &NewLine; &lt&semi;&sol;listener-class&gt&semi; &NewLine; &lt&semi;&sol;listener&gt&semi; &NewLine; &lt&semi;filter&gt&semi; &NewLine; &lt&semi;filter-name&gt&semi;struts2&lt&semi;&sol;filter-name&gt&semi; &NewLine; &lt&semi;filter-class&gt&semi; &NewLine; org&period;apache&period;struts2&period;dispatcher&period;ng&period;filter&period;StrutsPrepareAndExecuteFilter &NewLine; &lt&semi;&sol;filter-class&gt&semi; &NewLine; &lt&semi;&sol;filter&gt&semi; &NewLine; &lt&semi;filter-mapping&gt&semi; &NewLine; &lt&semi;filter-name&gt&semi;struts2&lt&semi;&sol;filter-name&gt&semi; &NewLine; &lt&semi;url-pattern&gt&semi;&sol;&ast;&lt&semi;&sol;url-pattern&gt&semi; &NewLine; &lt&semi;&sol;filter-mapping&gt&semi; &NewLine;&lt&semi;&sol;web-app&gt&semi; &NewLine;<&sol;pre>&NewLine;<p>Now right click on the project name and click <b>Export &gt&semi; WAR<&sol;b> File to create a War file&period; Then deploy this WAR in the Tomcat&&num;8217&semi;s webapps directory&period; Finally&comma; start Tomcat server and try to access<&sol;p>&NewLine;<p><b>URL <i>http&colon;&sol;&sol;localhost&colon;8080&sol;doj&sol;user<&sol;i> <&sol;b><&sol;p>&NewLine;<p>This will give you following screen&colon;<&sol;p>&NewLine;<div class&equals;"separator" style&equals;"clear&colon; both&semi; text-align&colon; center&semi;"><img src&equals;"http&colon;&sol;&sol;dineshonjava&period;com&sol;wp-content&sol;uploads&sol;2013&sol;08&sol;88888&period;png" border&equals;"0" &sol;><&sol;div>&NewLine;<p>&nbsp&semi;<&sol;p>&NewLine;<&sol;div>&NewLine;<p>Fill data of user form and submit let see following screen we will get&period;<&sol;p>&NewLine;<p><i><b>http&colon;&sol;&sol;localhost&colon;8080&sol;doj&sol;addUsermenu&period;action<&sol;b><&sol;i><&sol;p>&NewLine;<div class&equals;"separator" style&equals;"clear&colon; both&semi; text-align&colon; center&semi;"><img src&equals;"http&colon;&sol;&sol;dineshonjava&period;com&sol;wp-content&sol;uploads&sol;2013&sol;08&sol;10101&period;png" border&equals;"0" &sol;><&sol;div>&NewLine;<p>&nbsp&semi;<&sol;p>&NewLine;<&sol;div>&NewLine;<p><i><b>http&colon;&sol;&sol;localhost&colon;8080&sol;doj&sol;madhurimenu&period;action<&sol;b><&sol;i><&sol;p>&NewLine;<div class&equals;"separator" style&equals;"clear&colon; both&semi; text-align&colon; center&semi;"><img src&equals;"http&colon;&sol;&sol;dineshonjava&period;com&sol;wp-content&sol;uploads&sol;2013&sol;08&sol;1212&period;png" border&equals;"0" &sol;><&sol;div>&NewLine;<p>&nbsp&semi;<&sol;p>&NewLine;<&sol;div>&NewLine;<&sol;div>&NewLine;<p><b>Download Source Code &plus; Libs<&sol;b><br &sol;>&NewLine;<b><a href&equals;"https&colon;&sol;&sol;sites&period;google&period;com&sol;a&sol;dineshonjava&period;com&sol;dineshonjava&sol;dineshonjava&sol;Struts2Hibernate3Spring3Tile2Integration&period;zip&quest;attredirects&equals;0&amp&semi;d&equals;1" target&equals;"&lowbar;blank" rel&equals;"noopener">Struts2Hibernate3Spring3Tile2Integration&period;zip<&sol;a><&sol;b><&sol;p>&NewLine;<div style&equals;"background-color&colon; pink&semi; border-width&colon; thin&semi; text-align&colon; center&semi;"><b>&lt&semi;&lt&semi;<a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;struts2-integration-with-tiles2-spring3&sol;">Previous<&sol;a> &lt&semi;&lt&semi;   &vert;&vert; <a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;struts-2-baby-step-to-learn&sol;">Index <&sol;a>&vert;&vert;   &gt&semi;&gt&semi;<a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;struts-2-and-json-example&sol;">Next<&sol;a> &gt&semi;&gt&semi;<&sol;b><&sol;div>&NewLine;<p>&nbsp&semi;<&sol;p>&NewLine;<&sol;div>&NewLine;<div class&equals;"wp-post-navigation"> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab; <div class&equals;"wp-post-navigation-pre"> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab; <a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;struts2-integration-with-tiles2-spring3&sol;">Previous<&sol;a> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab; <&sol;div> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab; <div class&equals;"wp-post-navigation-next"> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab; <a href&equals;"https&colon;&sol;&sol;dineshonjava&period;com&sol;struts-2-and-json-example&sol;">Next<&sol;a> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab; <&sol;div> &NewLine;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;&Tab;<&sol;div>&NewLine;<script type&equals;"text&sol;javascript">&NewLine;jQuery&lpar;document&rpar;&period;ready&lpar;function&lpar;&dollar;&rpar; &lbrace;&NewLine; &dollar;&period;post&lpar;'https&colon;&sol;&sol;dineshonjava&period;com&sol;wp-admin&sol;admin-ajax&period;php'&comma; &lbrace;action&colon; 'mts&lowbar;view&lowbar;count'&comma; id&colon; '353'&rcub;&rpar;&semi;&NewLine;&rcub;&rpar;&semi;&NewLine;<&sol;script>

Dinesh Rajput

Dinesh Rajput is the chief editor of a website Dineshonjava, a technical blog dedicated to the Spring and Java technologies. It has a series of articles related to Java technologies. Dinesh has been a Spring enthusiast since 2008 and is a Pivotal Certified Spring Professional, an author of a book Spring 5 Design Pattern, and a blogger. He has more than 10 years of experience with different aspects of Spring and Java design and development. His core expertise lies in the latest version of Spring Framework, Spring Boot, Spring Security, creating REST APIs, Microservice Architecture, Reactive Pattern, Spring AOP, Design Patterns, Struts, Hibernate, Web Services, Spring Batch, Cassandra, MongoDB, and Web Application Design and Architecture. He is currently working as a technology manager at a leading product and web development company. He worked as a developer and tech lead at the Bennett, Coleman & Co. Ltd and was the first developer in his previous company, Paytm. Dinesh is passionate about the latest Java technologies and loves to write technical blogs related to it. He is a very active member of the Java and Spring community on different forums. When it comes to the Spring Framework and Java, Dinesh tops the list!

Share
Published by
Dinesh Rajput

Recent Posts

Strategy Design Patterns using Lambda

Strategy Design Patterns We can easily create a strategy design pattern using lambda. To implement…

4 years ago

Decorator Pattern using Lambda

Decorator Pattern A decorator pattern allows a user to add new functionality to an existing…

4 years ago

Delegating pattern using lambda

Delegating pattern In software engineering, the delegation pattern is an object-oriented design pattern that allows…

4 years ago

Spring Vs Django- Know The Difference Between The Two

Technology has emerged a lot in the last decade, and now we have artificial intelligence;…

4 years ago

TOP 20 MongoDB INTERVIEW QUESTIONS 2022

Managing a database is becoming increasingly complex now due to the vast amount of data…

4 years ago

Scheduler @Scheduled Annotation Spring Boot

Overview In this article, we will explore Spring Scheduler how we could use it by…

4 years ago