ssm整合一个记录

配置文件

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/spring-bean.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <!--springmvc过滤器 及 springmvc.xml的路径控制器-->
  <servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc.xml</param-value>
    </init-param>
    <!--在servlet容器加载时就初始化,并且优先级为1-->
    <!--<load-on-startup>1</load-on-startup>-->
  </servlet>
  <servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <!--编码格式 放在所有过滤器之前-->
  <filter>
    <filter-name>Encoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>utf-8</param-value>
    </init-param>
    <init-param>
      <param-name>forceRequestEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>forceResponseEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>Encoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <!--rest风格  处理隐藏域-->
  <filter>
    <filter-name>Hidden</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>Hidden</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

使ajax可以发送  PUT,delete形式
  <filter>
    <filter-name>HttpPutFormContentFilter</filter-name>
    <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>HttpPutFormContentFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

springmvc

 <!--扫描包-->
    <context:component-scan base-package="ssm" use-default-filters="false">
                <!--只扫描控制器-->
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" ></context:include-filter>
    </context:component-scan>

        <!--将springmvc不能处理的交给  tomcat-->
    <mvc:default-servlet-handler></mvc:default-servlet-handler>
    <mvc:resources mapping="/jquery/**" location="/static/js/"></mvc:resources>
    <mvc:resources mapping="/css/**" location="/static/bootstrap-3.3.7-dist/css/"></mvc:resources>
    <mvc:resources mapping="/bootstrap/**" location="/static/bootstrap-3.3.7-dist/js/"></mvc:resources>
    <mvc:resources mapping="/fonts/**" location="/static/bootstrap-3.3.7-dist/fonts/"></mvc:resources>
            <!--前端解析器-->
    <bean  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--前缀和后缀-->
        <property name="prefix" value="/WEB-INF/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>



    <!--<context:annotation-config></context:annotation-config>-->
    <mvc:annotation-driven></mvc:annotation-driven>

    <!--自定义拦截器-->
    <!--<mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/Employee/save_employee"/>
            <bean class="ssm.utils.MyIncepter"></bean>
        </mvc:interceptor>
    </mvc:interceptors>-->

上面配置了<mvc:servlet-default-handle>就不用配置json的映射器(下面这两个)了
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <!-- json视图拦截器,读取到@ResponseBody的时候去配置它-->
                <ref bean="mappingJacksonHttpMessageConverter"/>
            </list>
        </property>
    </bean>
    <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>application/json;charset=UTF-8</value>
            </list>
        </property>
    </bean>

spring的配置文件

<context:component-scan base-package="ssm">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:exclude-filter>
    </context:component-scan>
        <!--数据源   及事务控制-->
    <context:property-placeholder location="classpath:c3p0.properties"></context:property-placeholder>
    <bean id="pooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
        <property name="driverClass" value="${jdbc.driverClass}"></property>
        <property name="user" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
    </bean>



    <!--和mybaties的整合-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
                <!--mybaties的全局配置文件-->
        <property name="configLocation" value="classpath:mybaties.xml"></property>
        <property name="dataSource" ref="pooledDataSource"></property>
        <property name="mapperLocations" value="classpath:mapper/*.xml"></property>
    </bean>

        <!--配置批量处理的sqlsession-->
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
                <!--有参构造-->
        <constructor-arg name="sqlSessionFactory"  ref="sqlSessionFactory"/>
        <constructor-arg name="executorType" value="BATCH"></constructor-arg>
    </bean>
    <!--配置扫面器   扫描mybaties接口 将mapper接口注入到  Ioc容器中-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="ssm.dao.mymapper"></property>
    </bean>

    <!--事务控制-->
    <bean id="TransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!--控制事务源-->
        <property name="dataSource" ref="pooledDataSource"></property>
     </bean>
    <!--基于注解的事务配置-->
    <aop:config>

        <aop:pointcut id="aoppoint" expression="execution(* ssm.service..*(..))"></aop:pointcut>
        <aop:advisor advice-ref="txmanager" pointcut-ref="aoppoint"></aop:advisor>
    </aop:config>
    <tx:advice id="txmanager" transaction-manager="TransactionManager">
        <tx:attributes>
            <tx:method name="*"/>
        </tx:attributes>
    </tx:advice>

index页面:

表单:略

 //保存
        $('#emp_save_btn').click(function () {
            if(!form_validate){
                return false;
            }
            //判断  服务器判断
            if($('#emp_save_btn').attr('ajax-va') == 'error'){
                return false;
            }
            $.ajax({
                // 报了415错误   jquery-1.12.4.min.js:4 POST http://localhost:8080/Employee/save_employee 415 (Unsupported Media Type)
                url:"${pageContext.request.contextPath}/Employee/save_employee",
                //解决:  添加dataType
                dataType:"json",
                type:"POST",
                data:$('#empAddModal form').serialize(),
                // data:$('#empAddModal form').serialize(),

                // ContentType:"application/x-www-form-urlencoded",
                function 为回调函数,result为 从服务器传回的结果
                success: function(result){
                    //员工保存成功,关闭模态框
                    if(result.code == 100){
                        console.log('收到成功信息');
                        $('#empAddModal').modal('hide');
                        to_page(totalRecord);
                    }else{
                        console.log('收到失败信息')
                        console.log(result);
                        // $('#empAddModal form').addClass("has-error");
                        var fe=result.extend.errorsfiled;
                        if (fe.ename) {
                            show_validate_msg('#empName_add_input','error',fe.ename);
                        }
                        if (fe.email){
                            show_validate_msg('#email_add_input','error',fe.email);
                        }
                        if(fe.Enumber){
                            show_validate_msg('#email_add_input','error',fe.Enumber);
                        }
                    }
                 },
                error:function (result) {
                    alert(result);
                    console.log(result)
                }
            });

        });

控制器:

@Controller
@RequestMapping("Employee")
public class EmployeeController {
    @Autowired
    private EmployeeService employeeService;
```...

//添加员工 @RequestBody只能接收 json?
@ResponseBody
@RequestMapping(value="/save_employee",method = RequestMethod.POST)
public Msg save_employee(@Valid Employee employee, BindingResult result){
System.out.println(“信息”+employee);

    if (result.hasErrors()) {
        //校验失败 在模态框中返回信息
        Map<String, Object> map = new HashMap<>();
        List<FieldError> errors = result.getFieldErrors();
        for (FieldError er : errors) {
            //错误字段    错误信息
            System.out.println(er.getField() + " : " + er.getDefaultMessage());
            map.put(er.getField(), er.getDefaultMessage());
        }
        return Msg.fail().add("errorsfiled",map);
    }else {
        this.employeeService.save_employee(employee);
        return Msg.success().add("code", "成功");
    }
}

整合中遇到的问题

标题

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
数字乡村和智慧农业的数字化转型是当前农业发展的新趋势,旨在通过应用数字技术,实现农业全流程的再造和全生命周期的管理服务。中国政府高度重视这一领域的发展,提出“数字中国”和“乡村振兴”战略,以提升国家治理能力,推动城乡融合发展。 数字乡村的建设面临乡村治理、基础设施、产业链条和公共服务等方面的问题,需要分阶段实施《数字乡村发展战略纲要》来解决。农业数字化转型的需求包括满足市民对优质农产品的需求、解决产销对接问题、形成优质优价机制、提高农业劳动力素质、打破信息孤岛、提高农业政策服务的精准度和有效性,以及解决农业融资难的问题。 数字乡村建设的关键在于构建“1+3+4+1”工程,即以新技术、新要素、新商业、新农民、新文化、新农村为核心,推进数据融合,强化农业大数据的汇集功能。数字农业大数据解决方案以农业数字底图和数据资源为基础,通过可视化监管,实现区域农业的全面数字化管理。 数字农业大数据架构基于大数据、区块链、GIS和物联网技术,构建农业大数据中心、农业物联网平台和农村综合服务指挥决策平台三大基础平台。农业大数据中心汇聚各类涉农信息资源和业务数据,支持大数据应用。信息采集系统覆盖市、县、乡、村多级,形成高效的农业大数据信息采集体系。 农业物联网平台包括环境监测系统、视频监控系统、预警预报系统和智能控制系统,通过收集和监测数据,实现对农业环境和生产过程的智能化管理。综合服务指挥决策平台利用数据分析和GIS技术,为农业决策提供支持。 数字乡村建设包括三大服务平台:治理服务平台、民生服务平台和产业服务平台。治理服务平台通过大数据和AI技术,实现乡村治理的数字化;民生服务平台利用互联网技术,提供各类民生服务;产业服务平台融合政企关系,支持农业产业发展。 数字乡村的应用场景广泛,包括农业生产过程、农产品流通、农业管理和农村社会服务。农业生产管理系统利用AIoT技术,实现农业生产的标准化和智能化。农产品智慧流通管理系统和溯源管理系统提高流通效率和产品追溯能力。智慧农业管理通过互联网+农业,提升农业管理的科学性和效率。农村社会服务则通过数字化手段,提高农村地区的公共服务水平。 总体而言,数字乡村和智慧农业的建设,不仅能够提升农业生产效率和管理水平,还能够促进农村地区的社会经济发展,实现城乡融合发展,是推动中国农业现代化的重要途径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值