struts2 注解 同时 使用 *_*_*_*等

来源:互联网 发布:目标软件怎么样了 编辑:程序博客网 时间:2024/05/24 04:11

这几天遇到一个问题 新项目需要struts2+hibernate+spring 整合项目 老大要求 struts2需要使用<action>的方式 不使用注解 鼓捣了2天 发现我犯了个大错误

上解决方案:


1.整合全注解 这个就不多说了 http://www.cnblogs.com/xdp-gacl/p/4239501.html参照此链接可完成大部分 剩下的 少什么包自己再加吧 暂时 没有时间发自己的

2.applicationContext.xml 重点 :<!-- 自动扫描 action service dao --><context:component-scan base-package="cn.cars.dao.*,cn.cars.service.*,cn.cars.action.*" /> 个人推荐分开
   

<!-- 自动扫描 action service dao -->
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns:context="http://www.springframework.org/schema/context"        xmlns:tx="http://www.springframework.org/schema/tx"       xmlns:aop="http://www.springframework.org/schema/aop"       xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"><!-- 自动扫描 action service dao -->    <context:component-scan base-package="cn.cars.dao.*,cn.cars.service.*,cn.cars.action.*" />    <!-- dbcp配置 --><bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">        <property name="url" value="jdbc:mysql://localhost:3306/eam"/>        <property name="username" value="root" />        <property name="password" value="root" />        <!-- 初始化连接大小 -->        <property name="initialSize" value="0" />        <!-- 连接池最大使用连接数量 -->        <property name="maxActive" value="20" />        <!-- 连接池最大空闲 -->        <property name="maxIdle" value="20" />        <!-- 连接池最小空闲 -->        <property name="minIdle" value="0" />        <!-- 获取连接最大等待时间 -->        <property name="maxWait" value="60000" />        <!-- <property name="poolPreparedStatements" value="true" /> <property name="maxPoolPreparedStatementPerConnectionSize" value="33" /> -->        <property name="validationQuery" value="SELECT 1" />        <property name="testOnBorrow" value="false" />        <property name="testOnReturn" value="false" />        <property name="testWhileIdle" value="true" />        <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->        <property name="timeBetweenEvictionRunsMillis" value="60000" />        <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->        <property name="minEvictableIdleTimeMillis" value="25200000" />        <!-- 打开removeAbandoned功能 -->        <property name="removeAbandoned" value="true" />        <!-- 1800秒,也就是30分钟 -->        <property name="removeAbandonedTimeout" value="1800" />        <!-- 关闭abanded连接时输出错误日志 -->        <property name="logAbandoned" value="true" />        <!-- 监控数据库 -->        <!-- <property name="filters" value="stat" /> -->        <property name="filters" value="mergeStat" />    </bean> <!-- 配置hibernate session工厂 -->    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">        <property name="dataSource" ref="dataSource" />        <property name="hibernateProperties">            <props>                <!-- web项目启动时是否更新表结构 -->                <prop key="hibernate.hbm2ddl.auto">update</prop>                <!-- 系统使用的数据库方言,也就是使用的数据库类型 -->                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>                <!-- 是否打印Hibernate生成的SQL到控制台 -->                <prop key="hibernate.show_sql">true</prop>                <!-- 是否格式化打印出来的SQL -->                <prop key="hibernate.format_sql">true</prop>                                <prop key="javax.persistence.validation.mode">none</prop>            </props>        </property>        <!-- 自动扫描注解方式配置的hibernate类文件 -->        <property name="packagesToScan">            <list>                <value>cn.domain</value>            </list>        </property>    </bean><!-- transaction configration start --><bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"><property name="sessionFactory"><ref bean="sessionFactory" /></property><property name="nestedTransactionAllowed"><value>true</value></property></bean>    <!-- 拦截器方式配置事物 -->    <tx:advice id="transactionAdvice" transaction-manager="transactionManager">        <tx:attributes>            <!-- 以如下关键字开头的方法使用事物 -->            <tx:method name="add*" />            <tx:method name="save*" />            <tx:method name="update*" />            <tx:method name="modify*" />            <tx:method name="edit*" />            <tx:method name="delete*" />            <tx:method name="remove*" />            <tx:method name="repair" />            <tx:method name="deleteAndRepair" />            <!-- 以如下关键字开头的方法不使用事物 -->            <tx:method name="get*" propagation="SUPPORTS" />            <tx:method name="find*" propagation="SUPPORTS" />            <tx:method name="load*" propagation="SUPPORTS" />            <tx:method name="search*" propagation="SUPPORTS" />            <tx:method name="datagrid*" propagation="SUPPORTS" />            <!-- 其他方法不使用事物 -->            <tx:method name="*" propagation="SUPPORTS" />        </tx:attributes>    </tx:advice>   <aop:config>        <aop:pointcut id="transactionPointcut" expression="execution(* cn.cars.service..*Impl.*(..))" />        <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" />    </aop:config></beans>
3.struts.xml 基本就是这些 也没啥可说的 动态拦截 自行百度吧
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN""http://struts.apache.org/dtds/struts-2.1.dtd"><struts>    <!-- 指定由spring负责action对象的创建 -->    <constant name="struts.objectFactory" value="spring" />    <!-- 所有匹配*.action的请求都由struts2处理 -->    <constant name="struts.action.extension" value="action" />    <!-- 是否启用开发模式(开发时设置为true,发布到生产环境后设置为false) -->    <constant name="struts.devMode" value="true" />    <!-- struts配置文件改动后,是否重新加载(开发时设置为true,发布到生产环境后设置为false) -->    <constant name="struts.configuration.xml.reload" value="true" />    <!-- 设置浏览器是否缓存静态内容(开发时设置为false,发布到生产环境后设置为true) -->    <constant name="struts.serve.static.browserCache" value="false" />    <!-- 请求参数的编码方式 -->    <constant name="struts.i18n.encoding" value="utf-8" />    <!-- 每次HTTP请求系统都重新加载资源文件,有助于开发(开发时设置为true,发布到生产环境后设置为false) -->    <constant name="struts.i18n.reload" value="true" />    <!-- 文件上传最大值 -->    <constant name="struts.multipart.maxSize" value="104857600" />    <!--      让struts2支持动态方法调用,使用叹号访问方法     <constant name="struts.enable.DynamicMethodInvocation" value="true" />     Action名称中是否还是用斜线    <constant name="struts.enable.SlashesInActionNames" value="false" />     -->    <!-- 允许标签中使用表达式语法 -->    <constant name="struts.tag.altSyntax" value="true" />    <!-- 对于WebLogic,Orion,OC4J此属性应该设置成true -->    <constant name="struts.dispatcher.parametersWorkaround" value="false" />    <package name="basePackage" extends="struts-default" namespace = "/"><interceptors><!-- <interceptor name="exportInterceptor" class="com.zlwy.common.interceptor.ExportInterceptor"/><interceptor name="loginInterceptor" class="com.zlwy.common.interceptor.LoginInterceptor"/> --><interceptor-stack name="userInterceptor-stack"><interceptor-ref name="defaultStack"></interceptor-ref><!-- <interceptor-ref name="loginInterceptor"></interceptor-ref> <interceptor-ref name="exportInterceptor"></interceptor-ref> --></interceptor-stack></interceptors><default-interceptor-ref name="userInterceptor-stack"></default-interceptor-ref><!-- <global-results><result name="login">/pages/login/goPortal.jsp</result></global-results> --><action name="*_*_*_*" class="{1}Action" method="{2}"><result name="success">pages/{3}/{4}.jsp</result><result name="error">pages/{3}/{4}.jsp</result><result name="noprivilege">pages/login/noPrivilege.jsp</result></action><action name="*_*" class="{1}Action" method="{2}"></action><action name="*.*.*" class="{1}Action" method="{2}"><result name="success">pages/{3}.jsp</result><result name="error">pages/{3}.jsp</result><result name="toindex">/pages/login/goPortal.jsp</result></action>    </package></struts>

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 初三孩子失去学习兴趣怎么办 初二对学习兴趣不大怎么办 脸上痒发红发肿怎么办 孩子作业拖拉爱丢三落四怎么办 腿肌肉按摩肿了怎么办 孩子上一年级成绩差怎么办 小孩脖子拧筋了怎么办 小孩塑料玩具拧不出来怎么办 一年级孩子做数学题粗心怎么办 手和脚有点肿怎么办 手破了之后肿了怎么办 手指肿了有脓怎么办 宝宝手指红肿有脓怎么办 孩子一听做作业就烦气怎么办 虎皮鹦鹉脚瘸了怎么办 虎皮鹦鹉脚受伤了怎么办 虎皮鹦鹉脚流血了怎么办 虎皮鹦鹉被风扇打到脚怎么办 虎皮鹦鹉脚脱臼了怎么办 孩子作业做得慢怎么办 员工给公司造成损失怎么办 小孩有写不完的作业家长怎么办 一年级孩子作业太粗心怎么办 孩子最近不好好做作业怎么办 工作压力大害怕做不好怎么办 孩子的数算不对怎么办? 孩子计算老是出错怎么办呢 孩子经常计算错误能怎么办 孩子老出现计算错误怎么办 孩子做作业马虎该怎么办 黑笔写错了纸破了怎么办 幼儿园报名写错怎么办名字 中考写错了字怎么办 头发没干想睡觉怎么办 突然天旋地转恶心想吐怎么办 突然天旋地转的浑身出汗怎么办 3岁半不认识数字怎么办 孩子长倒睫毛该怎么办 一年级的孩子口算慢怎么办? 大班社会领域怎么办教学反思 表带活动圈坏了怎么办