Struts2 struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 是否支持动态方法调用:false表示不允许使用动态方法调用 1:暴露bean类,不安全 2会覆盖structs传过来的通配符-->
<constant name="struts.objectFactory" value="spring" /> <!-- 对象工厂改成spring -->
<package name="default" namespace="/" extends="json-default">
<interceptors>
<!-- 配置自定义拦截器 -->
<interceptor name="myInterceptor" class="com.tebuy.interceptor.myInterceptor"/>
<!-- 配置拦截器栈 -->
<interceptor-stack name="myInterceptorStack">
<interceptor-ref name="myInterceptor"/>
</interceptor-stack>
<interceptor name="logInterceptor"
class="com.tebuy.interceptor.LoggerInterceptor" />
</interceptors>
<action name="cart_*" class="cartAction" method="{1}">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="myInterceptorStack">
</interceptor-ref>
<result name="login">/login.jsp</result>
<result name="success">/cart.jsp</result>
</action>
<action name="order_*" class="orderAction" method="{1}">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="myInterceptorStack">
</interceptor-ref>
<result name="success">/order.jsp</result>
<result name="ok">/ok.jsp</result>
</action>
<!--xsc -->
<action name="user_*" class="userAction" method="{1}">
<result name="success">/home/anquan.jsp</result>
<interceptor-ref name="defaultStack" />
<interceptor-ref name="logInterceptor">
<param name="excludeMethods">safe</param>
</interceptor-ref>
<result name="json" type="json">
<param name="root">listUserBean</param>
</result>
<result name="next" type="redirect">user_backUser.action</result>
</action>
<action name="managerOp_*" class="managerOpAction" method="{1}">
<result name="json" type="json">
<param name="root">ManagerOpBean</param>
</result>
</action>
<action name="userIp_*" class="homeAnQuanAction" method="{1}">
<result name="success">/home/ajaxanquan.jsp</result>
</action>
<action name="backuserIp_*" class="speUserIpBackAction" method="{1}">
<result name="allIpJson" type="json">
<param name="root">backUserIpBeanList</param>
</result>
<result name="totalIp" type="json">
<param name="root">backUserIpBeanList</param>
</result>
</action>
<action name="backUserComment_*" class="backUserIndexAction" method="{1}">
<result name="allUserComment" type="json">
<param name="root">backUserCommentBeanList</param>
</result>
</action>
<!-- 贾冬林 -->
<!-- 注意:这里的class必须写spring中配置的action的id名,因为这时,由spring来生成action对象 -->
<action name="product_*" class="productAction" method="{1}">
<result>detail.jsp</result>
</action>
<action name="BackAD_*" class="backADAction" method="{1}">
<result name="listAd" type="redirect">/teback/backmain.jsp</result>
</action>
<!-- 老謝登錄 -->
<action name="speuser_*" class="loginAction" method="{1}">
<result name="onlyLogin">/${url}</result>
<result name="success" type="redirect">${url}</result>
<result name="fail">/login.jsp</result>
</action>
<action name="userIp_*" class="homeAnQuanAction" method="{1}">
<result name="success">/home/ajaxanquan.jsp</result>
</action>
<!--管理员 -->
<action name="admin_*" class="adminAction" method="{1}">
<result name="success" type="redirect" >/teback/backmain.jsp</result>
<result name="fail">/adminLogin.jsp</result>
<result name="allAdmin" type="json">
<param name="root">backAdminBeanList</param>
</result>
<result name="addAdminJson" type="json">
<param name="root">r</param>
</result>
<result name="updateJson" type="json">
<param name="root"></param>
</result>
</action>
<!--xsc的首页Comment -->
<action name="comment_*" class="backIndexAction" method="{1}">
<result name="fiveCommentJson" type="json">
<param name="root">backCommentBeanList</param>
</result>
</action>
<!-- ck首页order -->
<action name="backIndexOrder_listFiveOrder" class="backIndexOrderAction" method="listFiveOrder">
<result name="fiveOrderJson" type="json">
<param name="root">backOrderListBeanList</param>
</result>
</action>
<action name="backIndexOrder_listFiveSales" class="backIndexOrderAction" method="listFiveSales">
<result name="fiveSalesJson" type="json">
<param name="root">backOrderListBeanList1</param>
</result>
</action>
<!-- ck个人后台首页order -->
<action name="userBackIndexOrder_listFiveOrderById" class="userBackIndexOrderAction" method="listFiveOrderById">
<result name="fiveOrderJson" type="json">
<param name="root">userBackOrderListBeanList</param>
</result>
</action>
<action name="userBackIndexOrder_listFiveSalesById" class="userBackIndexOrderAction" method="listFiveSalesById">
<result name="fiveSalesJson" type="json">
<param name="root">userBackOrderListBeanList1</param>
</result>
</action>
<!-- zzg -->
<action name="ListAction_*" class="listAction" method="{1}">
<result name="success">/ajaxlist.jsp</result>
</action>
<action name="UserHomeAction_*" class="userHomeAction" method="{1}">
<result name="success">/ajaxuserlist.jsp</result>
</action>
<!-- end -->
<!-- wanyunhua 订单 -->
<action name="Homeorder_*" class="homeOrderAction" method="{1}">
<result name="success" type="redirect">/home/myorder.jsp</result>
<result name="ok" type="redirectAction">Homeorder_showOrder.action</result>
<result name="mid">/showfen.jsp</result>
</action>
<!-- zzg Address-->
<action name="UserAddressAction_*" class="userAddressAction" method="{1}">
<result name="infoJson" type="json">
<param name="root">speUserAddresss</param>
</result>
<result name="useraddressJson" type="json">
<param name="root">speUserAddress</param>
</result>
</action>
<!-- zzg -->
<!-- 后台 后台 后台 万云华后台 begin -->
<action name="backorder_*" class="backOrderListAction" method="{1}">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="logInterceptor"/>
<result name="listAlljson" type="json">
<param name="root">backOrderListBeanList</param>
</result>
<result name="listWfhjson" type="json">
<param name="root">backOrderListBeanList</param>
</result>
<result name="listYfhjson" type="json">
<param name="root">backOrderListBeanList</param>
</result>
<result name="listWpjjson" type="json">
<param name="root">backOrderListBeanList</param>
</result>
<result name="listYwcjson" type="json">
<param name="root">backOrderListBeanList</param>
</result>
<!-- 用户区域 -->
<result name="userlistAll" type="json">
<param name="root">backOrderListBeanList</param>
</result>
<result name="userlistWfhjson" type="json">
<param name="root">backOrderListBeanList</param>
</result>
<result name="listuserYfhjson" type="json">
<param name="root">backOrderListBeanList</param>
</result>
<result name="listuserWpj" type="json">
<param name="root">backOrderListBeanList</param>
</result>
<result name="listuserYwc" type="json">
<param name="root">backOrderListBeanList</param>
</result>
</action>
<!-- 下面是商品管理 -->
<action name="backgood_*" class="backGoodAction" method="{1}">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="logInterceptor"/>
<result name="Allgoods" type="json">
<param name="root">backGoodBeanList</param>
</result>
<!-- 用户商品 -->
<result name="usergoodAll" type="json">
<param name="root">backGoodBeanList</param>
</result>
</action>
<!-- 后台 后台 后台 万云华后台 end -->
<!-- zzg -->
<action name="BaikeAction_list" class="baikeAction" method="list">
<result name="success">/baike/ajaxseachvalue.jsp</result>
</action>
<action name="BaikeAction_search" class="baikeAction" method="search">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="logInterceptor"/>
<result name="success">/baike/baikedetail.jsp</result>
</action>
<action name="BaikeAction_list" class="baikeAction" method="list">
<result name="success">/baike/ajaxseachvalue.jsp</result>
</action>
<action name="BaikeAction_search" class="baikeAction" method="search">
<result name="success">/baike/baikedetail.jsp</result>
</action>
<action name="BackDataCommentAction_*" class="backDataCommentAction" method="{1}">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="logInterceptor"/>
<result name="listjson" type="json">
<param name="root">backDataCommentBeanList</param>
</result>
<result name="deletejson" type="json">
<param name="root">flag</param>
</result>
</action>
<action name="BackDataDictionaryAction_*" class="backDataDictionaryAction" method="{1}">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="logInterceptor"/>
<result name="listjson" type="json">
<param name="root">backDictionaryBeanList</param>
</result>
<result name="addson" type="json">
<param name="root">flag</param>
</result>
</action>
<action name="BackDataOrderAction_*" class="backDataOrderAction" method="{1}">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="logInterceptor"/>
<result name="listjson" type="json">
<param name="root">backDataOrderBean</param>
</result>
</action>
<action name="BackHistoryAction_*" class="backHistoryAction" method="{1}">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="logInterceptor"/>
<result name="listjson" type="json">
<param name="root">backDataHistoryBean</param>
</result>
</action>
<action name="BackDataCartItemAction_*" class="backDataCartItemAction" method="{1}">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="logInterceptor"/>
<result name="listjson" type="json">
<param name="root">backDataCartBean</param>
</result>
</action>
<action name="BackDataProductAction_*" class="backDataProductAction" method="{1}">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="logInterceptor"/>
<result name="listjson" type="json" >
<param name="root">backDataProductBeanList</param>
</result>
</action>
<!-- zzgend -->
<!-- ck reg -->
<action name="Reg_reg" class="com.tebuy.action.RegAction" method="reg">
<result name="fail">/register.jsp</result>
<result name="0">/login.jsp</result>
</action>
<!-- ck 实名认证 -->
<action name="HomeSafe_renzheng" class="com.tebuy.action.HomeSafeAction" method="renzheng">
<result name="fail" >/register.jsp</result>
<result name="success">/login.jsp</result>
</action>
<!-- ck 修改密码 -->
<action name="HomeSafe_updatepwd" class="com.tebuy.action.HomeSafeAction" method="updatepwd">
<result name="fail">/register.jsp</result>
<result name="success">/login.jsp</result>
</action>
<!-- ck mail -->
<action name="Reg_getValideCodeByEmail" class="com.tebuy.action.RegAction" method="getValideCodeByEmail">
<result name="json" type="json">
<param name="root">jsondata</param>
</result>
</action>
<!-- ck姓名表单 -->
<action name="Reg_findUserByName" class="com.tebuy.action.RegAction" method="findUserByName">
<!-- <result name="have" >
</result>
<result name="no"></result> -->
<result name="json" type="json">
<param name="root">0</param>
<param name="root2">1</param>
</result>
<!-- <result name="0" type="json">
<param name="root"></param>
</result>
<result name="1" type="json"></result> -->
</action>
</package>
</struts>
Spring beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
">
<!-- 扫描包名 -->
<context:component-scan base-package="com.tebuy"></context:component-scan>
<!-- 加载数据库属性文件 -->
<context:property-placeholder location="classpath:jdbc.properties" />
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<bean id="SqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="typeAliasesPackage" value="com.tebuy.entity"></property>
<property name="mapperLocations" value="classpath*:mapper/*Mapper.xml"></property>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.tebuy.mapper"></property>
<property name="sqlSessionFactoryBeanName" value="SqlSessionFactory"></property>
</bean>
<!-- 事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 声明式事务 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
</beans>
mybatis 配置
例子
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.tebuy.mapper.UserBackDataOrderMapper" >
<resultMap id="BaseResultMap" type="com.tebuy.bean.BackDataOrderBean" >
<id column="oi_id" property="oiId" jdbcType="INTEGER" />
<result column="pid" property="pid" jdbcType="INTEGER" />
<result column="o_id" property="oId" jdbcType="INTEGER" />
<result column="oi_amount" property="oiAmount" jdbcType="INTEGER" />
<result column="oi_discountprice" property="oiDiscountprice" jdbcType="DECIMAL" />
<result column="oi_totalMoney" property="oiTotalmoney" jdbcType="DECIMAL" />
<result column="oi_state" property="oiState" jdbcType="INTEGER" />
<result column="totalmoney" property="totalmoney" jdbcType="INTEGER" />
<result column="totalamount" property="totalamount" jdbcType="INTEGER" />
<result column="percent" property="percent" jdbcType="VARCHAR" />
<result column="ad_id" property="adId" jdbcType="INTEGER" />
<result column="uid" property="uid" jdbcType="INTEGER" />
<result column="o_date" property="oDate" jdbcType="DATE" />
<result column="o_totalMoney" property="oTotalmoney" jdbcType="DECIMAL" />
<result column="o_state" property="oState" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="pwd" property="pwd" jdbcType="VARCHAR" />
<result column="email" property="email" jdbcType="VARCHAR" />
<result column="banner" property="banner" jdbcType="VARCHAR" />
<result column="u_address" property="uAddress" jdbcType="VARCHAR" />
<result column="u_ip" property="uIp" jdbcType="VARCHAR" />
<result column="u_accept_state" property="uAcceptState" jdbcType="INTEGER" />
<result column="regTime" property="regtime" jdbcType="DATE" />
<result column="intergral" property="intergral" jdbcType="INTEGER" />
<result column="spare" property="spare" jdbcType="VARCHAR" />
<result column="mid" property="mid" jdbcType="INTEGER" />
<result column="d_id" property="dId" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="price" property="price" jdbcType="DECIMAL" />
<result column="discountPrice" property="discountprice" jdbcType="DECIMAL" />
<result column="pic" property="pic" jdbcType="VARCHAR" />
<result column="description" property="description" jdbcType="VARCHAR" />
<result column="detail" property="detail" jdbcType="VARCHAR" />
<result column="uptime" property="uptime" jdbcType="DATE" />
<result column="goodsState" property="goodsstate" jdbcType="VARCHAR" />
<result column="p_ProvinceName" property="pProvincename" jdbcType="VARCHAR" />
<result column="p_city" property="pCity" jdbcType="VARCHAR" />
<result column="tags" property="tags" jdbcType="VARCHAR" />
<result column="gcount" property="gcount" jdbcType="VARCHAR" />
<result column="history_spare" property="historySpare" jdbcType="VARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
o_id, ad_id, uid, o_date, o_totalMoney, o_state, spare
</sql>
<resultMap type="com.tebuy.bean.BackOrderListBean" id="BackOrderMap">
<id column="o_id" property="orderid" jdbcType="INTEGER" />
<result column="uid" property="userid" jdbcType="INTEGER" />
<result column="ad_id" property="addressid" jdbcType="INTEGER" />
<result column="o_date" property="ordertime" jdbcType="VARCHAR" />
<result column="o_state" property="orderstate" jdbcType="VARCHAR" />
<result column="oi_id" property="itid" jdbcType="INTEGER" />
<result column="oi_amount" property="itamount" jdbcType="INTEGER" />
<result column="oi_discountprice" property="itpay" jdbcType="DOUBLE" />
<result column="name" property="proname" jdbcType="VARCHAR" />
<result column="address" property="address" jdbcType="VARCHAR" />
<result column="oi_totalMoney" property="gonghuafei" jdbcType="DOUBLE" />
<result column="storeName" property="storeName" jdbcType="VARCHAR" />
<result column="percent" property="percent" jdbcType="DOUBLE" />
</resultMap>
<select id="getFiveOrderById" resultMap="BackOrderMap" parameterType="int">
select * from(select m.uid,e1.oi_id,e1.pid,e1.o_id,e1.oi_amount,e1.oi_discountprice,e1.oi_totalMoney,e1.oi_state,e1.mid,e1.name,m.storeName from (
select oi.oi_id,oi.pid,oi.o_id,oi.oi_amount,oi.oi_discountprice,oi.oi_totalMoney,oi.oi_state,p.mid,p.name from spe_OrderItem oi
join spe_Product p on oi.pid=p.pid
)e1 left join spe_merchant m on m.mid=e1.mid
)e2 left join spe_User uu on uu.uid = e2.uid where uu.uid=#{uid} order by e2.oi_id desc limit 0,5
</select>
<select id="getFiveSalesById" resultMap="BackOrderMap" parameterType="int">
select * from(
select m.uid,e1.oi_id,e1.pid,e1.o_id,e1.oi_amount,e1.oi_discountprice,e1.oi_totalMoney,e1.oi_state,e1.mid,e1.name,m.storeName,
round(sum(e1.oi_amount)/(select sum(oi_amount) from spe_OrderItem o,spe_Product p,spe_merchant m where o.pid=p.pid and m.mid=p.mid and m.uid=#{uid})*100,2) as percent from (
select oi.oi_id,oi.pid,oi.o_id,oi.oi_amount,oi.oi_discountprice,oi.oi_totalMoney,oi.oi_state,p.mid,p.name from spe_OrderItem oi
join spe_Product p on oi.pid=p.pid
)e1 left join spe_merchant m on m.mid=e1.mid where m.uid=#{uid} group by e1.pid
order by round(sum(e1.oi_amount)/(select sum(oi_amount) from spe_OrderItem)*100,2) desc limit 0,5
)e2 left join spe_user u on u.uid=e2.uid
</select>
<select id="countOrder" resultType="int" >
select count(a.oi_id) from
(select oi.oi_id from spe_OrderItem oi order by oi_id desc limit 0,5)a
</select>
<select id="countOrder1" resultType="int" >
select count(a.oi_id) from
(select oi.oi_id from spe_OrderItem oi order by oi_id desc limit 0,5)a
</select>
</mapper>
web.xml 配置
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</context-param>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>com.tebuy.action</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/struts/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- -->
<servlet>
<servlet-name>SimpleUploader</servlet-name>
<servlet-class>ckeditor.CKEditorUploadServlet</servlet-class>
<init-param>
<param-name>baseDir</param-name>
<param-value>/UserFiles/</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>enabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>AllowedExtensionsFile</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>DeniedExtensionsFile</param-name>
<param-value>
html|htm|php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi|htaccess|asis|ftl
</param-value>
</init-param>
<init-param>
<param-name>AllowedExtensionsImage</param-name>
<param-value>jpg|gif|jpeg|png|bmp</param-value>
</init-param>
<init-param>
<param-name>DeniedExtensionsImage</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>AllowedExtensionsFlash</param-name>
<param-value>swf|fla</param-value>
</init-param>
<init-param>
<param-name>DeniedExtensionsFlash</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SimpleUploader</servlet-name>
<url-pattern>/ckeditor/uploader</url-pattern>
</servlet-mapping>
<!-- asdasd -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>