SSH整合开发--酒店预订系统-->使用Struts技术开发表现层程序
来源:互联网 发布:psd文件打开软件 编辑:程序博客网 时间:2024/05/17 09:03
1.开发前台展示页面*.jsp程序。
(1)增加预订房间页面文件add.jsp;
(2)房间预订列表页面文件list.jsp;
(3)更新预定房间的页面文件update.jsp;
(4)查看预定信息页面文件result.jsp。
add.jsp文件:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib uri="/struts-tags" prefix="s"%><% String path = request.getContextPath();%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>增加房间</title> </head> <body> <%@include file="/info/adminInfo.jsp"%> <h1> <font color="red">增加房间</font> </h1> <s:form action="saveRoom"> <s:textfield name="room.name" label="房间名称"></s:textfield> <s:textfield name="room.price" label="房间价格"></s:textfield> <s:textfield name="room.category" label="房间类型"></s:textfield> <tr> <td class="tdLabel"> 房间状态: </td> <td> <select name="room.status"> <option value="0" selected="selected"> 空闲 </option> <option value="1"> 已入住 </option> </select> </td> </tr> <s:submit value="增 加"></s:submit> </s:form> </body></html>
list.jsp文件:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><%@ taglib uri="/struts-tags" prefix="s"%><% String path = request.getContextPath();%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>房间列表</title> <script type="text/javascript">function del() { if (confirm("确定删除房间信息吗?")) { return true; } return false;}</script> </head> <body> <%@include file="/info/adminInfo.jsp"%> <h1> <font color="red"><center> 房间列表 </center> </font> </h1> <s:a href="/hotel/room/add.jsp">增加房间</s:a> <table border="1" width="80%" align="center"> <tr> <td> 房间序号 </td> <td> 房间名称 </td> <td> 房间价格 </td> <td> 房间类型 </td> <td> 房间状态 </td> <td> 删除 </td> <td> 更新 </td> </tr> <s:iterator value="#request.list" id="room"> <tr> <td> <s:property value="#room.roomid" /> </td> <td> <s:property value="#room.name" /> </td> <td> <s:property value="#room.price" /> </td> <td> <s:property value="#room.category" /> </td> <td> <s:if test="#room.status == 0">空闲</s:if> <s:else>已入住</s:else> </td> <td> <s:a href="deleteRoom.action?room.roomid=%{#room.roomid}" onclick="return del();">delete</s:a> </td> <td> <s:a href="updatePRoom.action?room.roomid=%{#room.roomid}">update</s:a> </td> </tr> </s:iterator> </table> </body></html>
update.jsp文件:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><%@ taglib uri="/struts-tags" prefix="s"%><% String path = request.getContextPath();%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>修改房间信息</title> </head> <body> <%@include file="/info/adminInfo.jsp"%> <h1> <font color="red"><center> 修改房间 </center> </font> </h1> <s:form action="updateRoom"> <table> <tr> <td> <s:hidden name="room.roomid" value="%{room.roomid}"></s:hidden> </td> </tr> <tr> <td> <s:textfield name="room.name" value="%{room.name}" label="房间名称" readonly="true"></s:textfield> </td> </tr> <tr> <td> <s:textfield name="room.price" value="%{room.price}" label="房间价格"></s:textfield> </td> </tr> <tr> <td> <s:textfield name="room.category" value="%{room.category}" label="房间类型"></s:textfield> </td> </tr> <tr> <td> <tr> <td class="tdLabel"> 房间状态: </td> <s:if test="room.status == 0"> <td> <select name="room.status"> <option value="0" selected="selected"> 空房 </option> <option value="1"> 有客人 </option> </select> </td> </s:if> <s:else> <td> <select name="room.status"> <option value="0"> 空房 </option> <option value="1" selected="selected"> 有客人 </option> </select> </td> </s:else> </tr> </td> </tr> <tr> <td> <s:submit value="修改"></s:submit> </td> </tr> </table> </s:form> </body></html>
管理员管理功能的表现层JSP页面:
(1)添加管理员的页面文件add.jsp;
(2)管理员列表的页面文件list.jsp;
(3)更新管理员的页面文件update.jsp。
add.jsp文件:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><%@ taglib uri="/struts-tags" prefix="s"%><% String path = request.getContextPath();%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>添加管理员</title> </head> <body> <%@include file="/info/adminInfo.jsp"%> <h1> <font color="red">添加管理员</font> </h1> <s:form action="saveAdmin"> <s:textfield name="admin.username" label="用户名"></s:textfield> <s:password name="admin.password" label="密码"></s:password> <s:submit value="添 加"></s:submit> </s:form> </body></html>
list.jsp文件:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><%@ taglib uri="/struts-tags" prefix="s"%><% String path = request.getContextPath();%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>用户列表</title> <script type="text/javascript">function del() { if (confirm("你确定要删除该用户吗?")) { return true; } return false;}</script> </head> <body> <%@include file="/info/adminInfo.jsp"%> <h1> <font color="red"><center> 用户列表 </center> </font> </h1> <table border="1" width="80%" align="center"> <tr> <td> 序号 </td> <td> 姓名 </td> <td> 电话 </td> <td> 邮箱 </td> <td> 删除 </td> <td> 更新 </td> </tr> <s:iterator value="#request.list" id="us"> <tr> <td> <s:property value="#us.userid" /> </td> <td> <s:property value="#us.username" /> </td> <td> <s:property value="#us.mobile" /> </td> <td> <s:property value="#us.email" /> </td> <td> <s:a href="deleteUser.action?user.userid=%{#us.userid}" onclick="return del();">delete</s:a> </td> <td> <s:a href="updatePUser.action?user.userid=%{#us.userid}">update</s:a> </td> </tr> </s:iterator> </table> </body></html>
update.jsp文件:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><%@ taglib uri="/struts-tags" prefix="s"%><% String path = request.getContextPath();%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>修改用户资料</title> </head> <body> <%@include file="/info/adminInfo.jsp"%> <h1> <font color="red"><center> 修改用户 </center> </font> </h1> <s:form action="updateUser"> <table> <tr> <td> <s:hidden name="user.userid" value="%{user.userid}"></s:hidden> </td> </tr> <tr> <td> <s:textfield name="user.username" value="%{user.username}" label="用户名"></s:textfield> </td> </tr> <tr> <td> <!--<s:password name="user.password" value="%{user.password}" label="密码"></s:password>--> <s:textfield name="user.password" value="%{user.password}" label="密码"></s:textfield> </td> </tr> <tr> <td> <s:textfield name="user.mobile" value="%{user.mobile}" label="手机号码"></s:textfield> </td> </tr> <tr> <td> <s:textfield name="user.email" value="%{user.email}" label="邮箱地址"></s:textfield> </td> </tr> <tr> <td> <s:submit value="修改"></s:submit> </td> </tr> </table> </s:form> </body></html>
2.后台业务控制器Action的开发
实现房间预订功能需要3个Action:
(1)预定房间列表文件ListOrderAction.java;
(2)预定房间服务列表OrderServiceAction.java;
(3)保存预定信息的文件SaveOrderAction.java.
ListOrderAction.java文件:
package com.integration.action.order;import java.util.ArrayList;import java.util.List;import java.util.Map;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.integration.entity.Room;import com.integration.entity.Order;import com.integration.service.RoomService;import com.integration.service.OrderService;@SuppressWarnings("serial")public class ListOrderAction extends ActionSupport { private Order order; private Room room; private OrderService orderService; private RoomService roomService; private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public Room getRoom() { return room; } public void setRoom(Room room) { this.room = room; } public RoomService getRoomService() { return roomService; } public void setRoomService(RoomService roomService) { this.roomService = roomService; } public Order getOrder() { return order; } public void setOrder(Order order) { this.order = order; } public OrderService getOrderService() { return orderService; } public void setOrderService(OrderService orderService) { this.orderService = orderService; } @SuppressWarnings("unchecked") @Override public String execute() throws Exception { //�õ�orders�������û��Ķ��� List<Order> orders = this.orderService.findAllOrder(); //�����û���order.getRoomid�õ��û������ķ������hotels List<Room> rooms = new ArrayList<Room>(); if (orders.size() > 0) { for (Order order : orders) { rooms.add((Room) this.roomService.findRoomById(order .getRoomid())); } } //�����û������ķ���hotels��listAllHotel���棬��jsp����ȡ������ʾ Map requestList = (Map) ActionContext.getContext().get("request"); requestList.put("listAllRoom", rooms); return SUCCESS; }}
OrderServiceAction.java文件:
package com.integration.action.order;import java.util.ArrayList;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.integration.entity.Room;import com.integration.entity.Order;import com.integration.entity.User;import com.integration.service.RoomService;import com.integration.service.OrderService;@SuppressWarnings("serial")public class OrderServiceAction extends ActionSupport { private Room room; private OrderService orderService; private RoomService roomService; private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public Room getRoom() { return room; } public void setRoom(Room room) { this.room = room; } public OrderService getOrderService() { return orderService; } public void setOrderService(OrderService orderService) { this.orderService = orderService; } public RoomService getRoomService() { return roomService; } public void setRoomService(RoomService roomService) { this.roomService = roomService; } // �õ��û���Ԥ���ķ��� @SuppressWarnings("unchecked") public String execute() throws Exception { //�õ�orders�ĵ�ǰ�û��Ķ��� HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession(); User user = (User) session.getAttribute("user"); List<Order> orders = this.orderService.getUserOrder(user); //�����û���order.getRoomid�õ��û������ķ������hotels List<Room> rooms = new ArrayList<Room>(); if (orders.size() > 0) { for (Order order : orders) { rooms.add((Room)this.roomService.findRoomById(order .getRoomid())); } } //�����û������ķ���hotels��listUserHotel���棬��jsp����ȡ������ʾ Map requestList = (Map) ActionContext.getContext().get("request"); requestList.put("listUserRoom", rooms); return SUCCESS; } // �˶� public String delete() { HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession(); User user = (User) session.getAttribute("user"); // ɾ������ Order order = this.orderService.findOrderByUseridAndRoomid(user .getUserid(), room.getRoomid()); this.orderService.removeOrder(order); // ���÷���Ϊ�գ����� Room roomUser = this.roomService.findRoomById(room.getRoomid()); roomUser.setStatus(0); this.roomService.updateRoom(roomUser); message = "�˶�����ɹ���"; return "delSuc"; }}
SaveOrderAction.java文件:
package com.integration.action.order;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.integration.entity.Room;import com.integration.entity.Order;import com.integration.entity.User;import com.integration.service.RoomService;import com.integration.service.OrderService;@SuppressWarnings("serial")public class SaveOrderAction extends ActionSupport { private Order order; private User user; private Room room; private OrderService orderService; private RoomService roomService; private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } public Room getRoom() { return room; } public void setRoom(Room room) { this.room = room; } public RoomService getRoomService() { return roomService; } public void setRoomService(RoomService roomService) { this.roomService = roomService; } public Order getOrder() { return order; } public void setOrder(Order order) { this.order = order; } public OrderService getOrderService() { return orderService; } public void setOrderService(OrderService orderService) { this.orderService = orderService; } @SuppressWarnings("unchecked") @Override public String execute() throws Exception { Map request = (Map) ActionContext.getContext().get("request"); request.put("listRoom", this.roomService.findAllRoom()); return SUCCESS; } public String add() { // �жϷ����Ƿ��� Room roomUser = this.roomService.findRoomById(room.getRoomid()); if (roomUser.getStatus() == 0) { HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession(); User user = (User) session.getAttribute("user"); order.setUserid(user.getUserid()); // Ԥ�� this.orderService.saveOrder(order); // ���÷���Ϊ�����п��ˣ� roomUser.setStatus(1); this.roomService.updateRoom(roomUser); return "addSuc"; } else { message = "�÷����Ѿ��п�����ס�ˡ�"; return "addFail"; } }}
3.在struts.xml中配置全部订单管理控制器
在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> <package name="hotel" extends="struts-default"> <action name="userService" class="userAction"> <result name="success" type="redirect">/info/userInfo.jsp</result> <result name="input" type="redirect">/login.jsp</result> <result name="userUpdate" type="dispatcher">/info/changePwd.jsp</result> <result name="updateSuc" type="dispatcher">/info/result.jsp</result> </action> <action name="adminService" class="adminServiceAction"> <result name="loginSuc" type="redirect">/info/adminInfo.jsp</result> <result name="input" type="redirect">/adminLogin.jsp</result> </action> <action name="saveUser" class="saveUserAction"> <result name="success" type="redirect"> <param name="actionName">listUser.action</param> </result> <result name="regSuc" type="dispatcher">/info/userInfo.jsp</result> </action> </package> <!-- 用户登录后才能访问的action --> <package name="authority" extends="struts-default"> <interceptors> <interceptor name="authority" class="com.integration.interceptor.AuthorityInterceptor" /> <interceptor-stack name="mydefault"> <interceptor-ref name="defaultStack" /> <interceptor-ref name="authority" /> </interceptor-stack> </interceptors> <default-interceptor-ref name="mydefault"></default-interceptor-ref> <global-results> <result name="login">/login.jsp</result> </global-results> <!-- order --> <action name="saveOrder" class="saveOrderAction"> <result name="success" type="dispatcher">/order/add.jsp</result> <result name="addSuc" type="redirect">orderService</result> <result name="addFail" type="dispatcher">/info/result.jsp</result> </action> <action name="orderService" class="orderServiceAction"> <result name="success" type="dispatcher">/info/orderInfo.jsp</result> <result name="delSuc" type="dispatcher">/info/result.jsp</result> </action> </package> <!-- 管理员后才能访问的action --> <package name="authorityAdmin" extends="struts-default"> <interceptors> <interceptor name="authorityAdmin" class="com.integration.interceptor.AdminInterceptor" /> <interceptor-stack name="mydefaultAdmin"> <interceptor-ref name="defaultStack" /> <interceptor-ref name="authorityAdmin" /> </interceptor-stack> </interceptors> <default-interceptor-ref name="mydefaultAdmin"></default-interceptor-ref> <global-results> <result name="login">/adminLogin.jsp</result> </global-results> <!-- user --> <action name="listUser" class="listUserAction"> <result name="success">/user/list.jsp</result> </action> <action name="deleteUser" class="removeUserAction"> <result name="success" type="redirect">listUser.action</result> </action> <action name="updatePUser" class="updatePUserAction"> <result name="success">/user/update.jsp</result> </action> <action name="updateUser" class="updateUserAction"> <result name="success" type="redirect">listUser.action</result> </action> <!-- admin --> <action name="saveAdmin" class="saveAdminAction"> <result name="success" type="redirect">/index.jsp</result> </action> <!-- hotel --> <action name="saveRoom" class="saveRoomAction"> <result name="success" type="redirect">listRoom.action</result> </action> <action name="listRoom" class="listRoomAction"> <result name="success">/room/list.jsp</result> </action> <action name="deleteRoom" class="removeRoomAction"> <result name="success" type="redirect">listRoom.action</result> </action> <action name="updatePRoom" class="updatePRoomAction"> <result name="success">/room/update.jsp</result> </action> <action name="updateRoom" class="updateRoomAction"> <result name="success" type="redirect">listRoom.action</result> </action> <!-- order --> <action name="listOrder" class="listOrderAction"> <result name="success" type="dispatcher">/order/list.jsp</result> </action> </package></struts>
使用Spring技术集成Struts与Hibernate
1.Spring集成Hibernate
Spring集成Hibernate是通过applicationContext.xml文件完成的。
代码如下:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="mappingResources"> <list> <value>com/integration/entity/Order.hbm.xml</value> <value>com/integration/entity/Admin.hbm.xml</value> <value>com/integration/entity/Room.hbm.xml</value> <value>com/integration/entity/User.hbm.xml</value> </list> </property> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/hotel</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>root</value> </property> <prop key="hibernate.show_sql">true</prop> </props> </bean>
完整的applicationContext.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/hotel</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>root</value> </property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="mappingResources"> <list> <value>com/integration/entity/Order.hbm.xml</value> <value>com/integration/entity/Admin.hbm.xml</value> <value>com/integration/entity/Room.hbm.xml</value> <value>com/integration/entity/User.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.show_sql">true</prop> </props> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- userDao --> <bean id="userDao" class="com.integration.dao.impl.UserDAOImpl" scope="singleton"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="userServiceTarget" class="com.integration.service.impl.UserServiceImpl"> <property name="userDao" ref="userDao"></property> </bean> <bean id="userService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="target" ref="userServiceTarget"></property> <property name="transactionManager" ref="transactionManager"></property> <property name="transactionAttributes"> <props> <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <bean id="saveUserAction" class="com.integration.action.user.SaveUserAction" scope="prototype"> <property name="service" ref="userService"></property> </bean> <bean id="listUserAction" class="com.integration.action.user.ListUserAction" scope="prototype"> <property name="service" ref="userService"></property> </bean> <bean id="removeUserAction" class="com.integration.action.user.RemoveUserAction" scope="prototype"> <property name="service" ref="userService"></property> </bean> <bean id="updatePUserAction" class="com.integration.action.user.UpdatePUser"> <property name="service" ref="userService"></property> </bean> <bean id="updateUserAction" class="com.integration.action.user.UpdateUserAction" scope="prototype"> <property name="service" ref="userService"></property> </bean> <bean id="userAction" class="com.integration.action.user.UserAction" scope="prototype"> <property name="userService" ref="userService"></property> </bean> <!-- adminDao --> <bean id="adminDao" class="com.integration.dao.impl.AdminDAOImpl" scope="singleton"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="adminServiceTarget" class="com.integration.service.impl.AdminServiceImpl"> <property name="adminDao" ref="adminDao"></property> </bean> <bean id="adminService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="target" ref="adminServiceTarget"></property> <property name="transactionManager" ref="transactionManager"></property> <property name="transactionAttributes"> <props> <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <bean id="saveAdminAction" class="com.integration.action.admin.SaveAdminAction" scope="prototype"> <property name="adminService" ref="adminService"></property> </bean> <bean id="adminServiceAction" class="com.integration.action.admin.AdminServiceAction" scope="prototype"> <property name="adminService" ref="adminService"></property> </bean> <!-- roomDao --> <bean id="roomDao" class="com.integration.dao.impl.RoomDAOImpl" scope="singleton"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="roomServiceTarget" class="com.integration.service.impl.RoomServiceImpl"> <property name="roomDao" ref="roomDao"></property> </bean> <bean id="roomService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="target" ref="roomServiceTarget"></property> <property name="transactionManager" ref="transactionManager"></property> <property name="transactionAttributes"> <props> <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <bean id="saveRoomAction" class="com.integration.action.room.SaveRoomAction" scope="prototype"> <property name="roomService" ref="roomService"></property> </bean> <bean id="listRoomAction" class="com.integration.action.room.ListRoomAction" scope="prototype"> <property name="roomService" ref="roomService"></property> </bean> <bean id="removeRoomAction" class="com.integration.action.room.RemoveRoomAction" scope="prototype"> <property name="roomService" ref="roomService"></property> </bean> <bean id="updatePRoomAction" class="com.integration.action.room.UpdatePRoom"> <property name="roomService" ref="roomService"></property> </bean> <bean id="updateRoomAction" class="com.integration.action.room.UpdateRoomAction" scope="prototype"> <property name="roomService" ref="roomService"></property> </bean> <!-- orderDao --> <bean id="orderDao" class="com.integration.dao.impl.OrderDAOImpl" scope="singleton"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="orderServiceTarget" class="com.integration.service.impl.OrderServiceImpl"> <property name="orderDao" ref="orderDao"></property> </bean> <bean id="orderService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="target" ref="orderServiceTarget"></property> <property name="transactionManager" ref="transactionManager"></property> <property name="transactionAttributes"> <props> <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <bean id="saveOrderAction" class="com.integration.action.order.SaveOrderAction" scope="prototype"> <property name="orderService" ref="orderService"></property> <property name="roomService" ref="roomService"></property> </bean> <bean id="orderServiceAction" class="com.integration.action.order.OrderServiceAction" scope="prototype"> <property name="roomService" ref="roomService"></property> <property name="orderService" ref="orderService"></property> </bean> <bean id="listOrderAction" class="com.integration.action.order.ListOrderAction" scope="prototype"> <property name="roomService" ref="roomService"></property> <property name="orderService" ref="orderService"></property> </bean></beans>
2.整合Struts 2 和Spring
先为项目添加Spring所需要的jar文件,然后修改web.xml文件。通过Listener的配置,是的Web应用启动时能够自动查找位于WEB-INF下的applicationContext.xml文件,并根据该文件创建Spring容器。接着在配置文件ApplicationContext.xml文件中完成对各个Bean的配置,该配置文件的作用是使得Spring能够自动完成依赖注入。
web.xml文件代码如下:
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </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>
哇~~到这里整个项目就该完成了……
- SSH整合开发--酒店预订系统-->使用Struts技术开发表现层程序
- SSH整合开发Demo--酒店预订系统-->DAO层设计
- SSH整合开发--酒店预订系统-->业务逻辑层设计
- SSH整合开发Demo--酒店预订系统
- SSH表现层--struts标签
- Struts实战-使用SSH框架技术开发学籍管理系统
- javaweb酒店预订管理系统
- 实现了酒店预订系统的预订部分功能。
- 酒店预订分销系统和分销商
- 使用struts实现SSH整合
- 扫码点餐小程序技术开发系统
- 操作系统内核开发:使用图层技术开发一个MessageBox
- Struts2 整合表现层技术
- 泰国酒店预订攻略
- 分享酒店预订源码
- 酒店管理系统程序
- 酒店管理系统程序
- SSH酒店点菜系统笔记
- base64编码,用于url中传输的base64
- python exists
- 对okhttp的二次封装
- C++大整数运算
- 32位win7安装scrapy,numpy,scipy
- SSH整合开发--酒店预订系统-->使用Struts技术开发表现层程序
- MyBatis JdbcType 与Oracle、MySql数据类型对应关系详解
- stream data platform 1
- 面试点滴(二)
- 前端笔试面试题--2
- oracle 常用知识点整理
- Java温习——数据类型
- 中介者模式(Mediator Pattern)
- C#桌面框架版本及其组件