- Start with the struts-blank application
- Create the search.jsp file
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%> <%@ taglib uri="http://displaytag.sf.net" prefix="display"%> <%@ page import="beans.Employee,business.Sorter,java.util.List,org.displaytag.tags.TableTagParameters,org.displaytag.util.ParamEncoder"%> <html:html> <head> <title>Search page</title> <link rel="stylesheet" type="text/css" href="/StrutsPaging/css/screen.css" /> </head> <body bgcolor="white"> <html:form action="/search.do"> <table> <tr> <td>Minimum Salary:</td> <td><html:text property="minSalary"></html:text></td> </tr> <tr> <td colspan="2"><html:submit property="submit" /></td> </tr> </table> </html:form> <logic:notEqual name="empList" value="null"> <jsp:scriptlet> if (session.getAttribute("empList") != null) { String sortBy = request.getParameter((new ParamEncoder("empTable")).encodeParameterName(TableTagParameters.PARAMETER_SORT)); Sorter.sort((List) session.getAttribute("empList"), sortBy); } </jsp:scriptlet> <display:table name="sessionScope.empList" pagesize="4" id="empTable" sort="external" defaultsort="1" defaultorder="ascending" requestURI=""> <display:column property="empId" title="ID" sortable="true" sortName="empId" headerClass="sortable" /> <display:column property="empName" title="Name" sortName="empName" sortable="true" headerClass="sortable" /> <display:column property="empJob" title="Job" sortable="true" sortName="empJob" headerClass="sortable" /> <display:column property="empSal" title="Salary" sortable="true" headerClass="sortable" sortName="empSal" /> </display:table> </logic:notEqual> </body> </html:html>
pages/search.jsp - Create the Action class:
public class SearchAction extends Action { private BusinessInterface businessInterface; public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse httpservletresponse) throws Exception { if (form == null) { return mapping.findForward("success"); } try { SearchForm searchForm = (SearchForm) form; if (searchForm.getMinSalary() == null || searchForm.getMinSalary().equals("")) { return mapping.findForward("success"); } long minSal = Long.parseLong(searchForm.getMinSalary()); System.out.println("Business Interface: " + businessInterface); List data = businessInterface.getData(minSal); System.out.println("Data : " + data); request.getSession().setAttribute("empList", data); } catch (Exception e) { e.printStackTrace(); } return mapping.findForward("success"); } public void setBusinessInterface(BusinessInterface bi) { businessInterface = bi; } }
SearchAction.java
Note that the action class has a property businessInterface. This property will be set by spring when loading the action class. - Define the form and action beans in struts-config.xml
<form-beans> <form-bean name="searchForm" type="forms.SearchForm" /> </form-beans> <action-mappings> <action path="/Welcome" forward="/pages/Welcome.jsp" /> <action name="searchForm" path="/search" scope="session" type="org.springframework.web.struts.DelegatingActionProxy"> <forward name="success" path="/pages/search.jsp"></forward> </action> </action-mappings>
Note that, in the action-mapping, the action type is defined as "org.springframework.web.struts.DelegatingActionProxy". This will ensure that Spring will take care of handling struts actions. - Integrate Struts And Spring: The final step of integration is to add a spring plugin to struts-config.xml. The plugin defines the location of the spring bean-factory definitions.
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/> </plug-in>
This is one way of integrating struts and spring, for other ways of integration, refer to : Get a better handle on Struts actions, with Spring
Home » struts » Data Access with Spring and Struts: Part 1
Data Access with Spring and Struts: Part 1
The struts pagination post contained an example of using Hibernate for data access too. In this post, I use the same example to implement the same pagination example using Spring. In this part we will see how to get a struts application ready for spring, the next part describes how to implement data access in spring. Follow these steps to run the example.
{ 0 comments... Views All / Send Comment! }
Post a Comment