基于注解的SPRINGMVC+FREEMARKER环境搭建

本文详细介绍如何使用Spring MVC框架构建一个web应用,包括配置web.xml、创建配置文件、实现Controller建立及视图渲染。

原文地址:http://www.blogjava.net/paulwong/archive/2012/03/19/372220.html

  1. 首先用IDE建一个web工程。(这个就不详细介绍了) 
  2. 引入响应的jar包 
  3. web.xml
    <?xml version="1.0" ?>
    <web-app 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_3_0.xsd"
        version
    ="3.0">
        
    <!--  Spring 服务层的配置文件 -->
        
    <context-param>
            
    <param-name>contextConfigLocation</param-name>
            
    <param-value>classpath:applicationContext.xml</param-value>
        
    </context-param>
        
        
    <!--  Spring 容器启动监听器 -->
        
    <listener>
            
    <listener-class>org.springframework.web.context.ContextLoaderListener
            
    </listener-class>
        
    </listener>

        
    <servlet>
            
    <servlet-name>springmvc</servlet-name>
            
    <servlet-class>org.springframework.web.servlet.DispatcherServlet
            
    </servlet-class>
            
    <load-on-startup>1</load-on-startup>
        
    </servlet>
        
    <!--为DispatcherServlet建立映射 -->
        
    <servlet-mapping>
            
    <servlet-name>springmvc</servlet-name>
            
    <url-pattern>/</url-pattern>
        
    </servlet-mapping>
    </web-app>

  4. SpringMVC另外一个重要的配置文件。 
    DispatcherServlet会根绝web.xml中配置的<servlet-name>去找<servlet-name>-servlet.xml的文件来加载spring的一些配置信息。我这里就应该取名叫springmvc-servlet.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"
        xmlns:p
    ="http://www.springframework.org/schema/p" 
        xmlns:context
    ="http://www.springframework.org/schema/context"
        xsi:schemaLocation
    ="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-2.5.xsd"
    >
        
        
    <!--对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 -->
        
    <context:component-scan base-package="com.liba.spring.mvc"/>
        
        
    <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射   请求映射-->
        
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
        
            
    <!--以下三种视图配置根据需要任选一种即可 -->

        
    <!--  一般的视图配置 -->
        
    <!--<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
            p:prefix="/WEB-INF/view/" p:suffix=".jsp"/>
    -->
        
        
    <!-- 针对freemarker的视图配置 -->
        
    <bean id="viewResolver"
            class
    ="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
            
    <property name="cache" value="true" />
            
    <property name="prefix" value="" />
            
    <property name="suffix" value=".ftl" />
            
    <property name="contentType" value="text/html;charset=UTF-8"></property>
            
    <property name="requestContextAttribute" value="request" />
            
    <property name="exposeSpringMacroHelpers" value="true" />
            
    <property name="exposeRequestAttributes" value="true" />
            
    <property name="exposeSessionAttributes" value="true" />
        
    </bean>
            
            
        
    <!-- View resolvers can also be configured with ResourceBundles or XML files. 
            If you need different view resolving based on Locale, you have to use the 
            resource bundle resolver. 
    -->
        
    <!-- 这个是针对返回视图还是json值的视图配置   来分别处理同步和异步请求 -->
        
    <!--<bean
                class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
                <property name="mediaTypes">
                    <map>
                        <entry key="html" value="text/html" />
                        <entry key="json" value="application/json" />
                    </map>
                </property>
                <property name="favorParameter" value="true" />
                <property name="viewResolvers">
                    <list>
                        <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
                        <bean id="viewResolver"
                            class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
                            <property name="cache" value="true" />
                            <property name="prefix" value="" />
                            <property name="suffix" value=".ftl" />
                            <property name="contentType" value="text/html;charset=UTF-8"></property>
                            <property name="requestContextAttribute" value="request" />
                            <property name="exposeSpringMacroHelpers" value="true" />
                            <property name="exposeRequestAttributes" value="true" />
                            <property name="exposeSessionAttributes" value="true" />
                        </bean>
                    </list>
                </property>
                <property name="defaultContentType" value="text/html" />
            </bean>
            
    -->
    </beans>

  5. 如果是使用freemarker最为视图模板需要再spring的配置文件applicationContext.xml中加入以下配置
    <bean id="freemarkerConfig"
            class
    ="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
            
    <property name="templateLoaderPath" value="/WEB-INF/view/" />
            
    <property name="freemarkerSettings">
                
    <props>
                    
    <prop key="template_update_delay">0</prop>
                    
    <prop key="default_encoding">UTF-8</prop>
                    
    <prop key="number_format">0.##########</prop>
                    
    <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
                    
    <prop key="classic_compatible">true</prop>
                    
    <prop key="template_exception_handler">ignore</prop>
                
    </props>
            
    </property>
        
    </bean>

  6. Controller建立
    import javax.servlet.http.HttpServletRequest;

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.servlet.ModelAndView;

    @Controller
    public class SpringMvcController {

        @RequestMapping(value
    ="/welcome",method={RequestMethod.GET}
        
    public ModelAndView getFirstPage(HttpServletRequest request) {
                    
    //welcom就是视图的名称(welcom.ftl)
            ModelAndView mv = new ModelAndView("welcom");
            mv.addObject(
    "name""My First Spring Mvc");
            
    return mv;
        }

    }
    在url上敲http://localhost:8080/welcome就会到WEB-INF/view/welcom.ftl页面渲染数据
  7. welcom.ftl页面
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    Hello ${name}
    </body>
    </html>

    页面出来的效果: 

    Hello My First Spring Mvc 

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值