基于注解的SpringMVC+freemarker demo实例
web项目图
web.xml文件
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <!-- 配置DispatcherServlet --> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 指定spring mvc配置文件位置 不指定使用默认情况 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/springmvc-servlet.xml</param-value> <!--默认:/WEB-INF/<servlet-name>-servlet.xml classpath方式:<param-value>classpath:/spring-xml/*.xml</param-value> --> </init-param> <!-- 设置启动顺序 --> <load-on-startup>1</load-on-startup> </servlet> <!-- 配置映射 servlet-name和DispatcherServlet的servlet一致 --> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern><!-- 拦截以/所有请求 --> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
springmvc-servlet.xml文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" 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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 默认注解映射支持 --> <mvc:annotation-driven/> <!-- 自动扫描包 --> <context:component-scan base-package="com.spring.freemarker" /> <!--<context:annotation-config /> 配置自动扫描包配置此配置可省略--> <!--<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" 配置自动扫描包配置此配置可省略/>--> <!-- 配置freeMarker的模板路径 --> <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="WEB-INF/ftl/" /> <property name="defaultEncoding" value="UTF-8" /> </bean> <!-- freemarker视图解析器 --> <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="suffix" value=".ftl" /> <property name="contentType" value="text/html;charset=UTF-8" /> <!-- 此变量值为pageContext.request, 页面使用方法:rc.contextPath --> <property name="requestContextAttribute" value="rc" /> </bean> </beans>
FreeMarkerController类
package com.spring.freemarker; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.spring.vo.User; @Controller @RequestMapping("/home") public class FreeMarkerController { @RequestMapping("/index") public ModelAndView Add(HttpServletRequest request, HttpServletResponse response) { User user = new User(); user.setUsername("zhangsan"); user.setPassword("1234"); List<User> users = new ArrayList<User>(); users.add(user); return new ModelAndView("index", "users", users); } }
User类
package com.spring.vo; public class User { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
index.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=UTF-8"> <title>Insert title here</title> </head> <body> <#list users as user> username : ${user.username}<br/> password : ${user.password} </#list> </body> </html>
部署到tomcat,运行:http://localhost:8080/springmvc/home/index
显示结果:
username : zhangsan
password : 1234
相关推荐
"Maven+SpringMVC+Freemarker Demo"是一个经典的Java Web开发实例,它展示了如何利用现代工具链进行高效开发。Maven简化了依赖管理,SpringMVC提供了强大的MVC框架,而Freemarker则让视图层更加灵活。理解并掌握这三...
在本项目中,我们主要探讨如何手动构建一个基于SpringMVC、Spring Data JPA、Hibernate以及FreeMarker模板引擎的Maven工程,同时实现环境切换功能。这个基础框架为日常开发工作提供了必要的支持。 首先,SpringMVC...
Spring MVC 基于注解的开发方式,允许开发者在类和方法上使用注解来声明控制器、请求映射、参数绑定等,极大地减少了配置文件的使用,提高了开发效率。例如,`@RestController` 和 `@RequestMapping` 注解分别用于...
本实例主要涉及的技术栈包括SpringMVC、MyBatis、EhCache、FreeMarker以及Sitemesh,这些技术都是Java Web开发中的重要组件,各自承担着不同的职责。下面将分别详细介绍这些技术以及它们在整合中的作用。 1. ...
标题 "Springmvc+dubbo+mybatis+mysql+redis" 描述了一个基于Java技术栈的分布式微服务架构。在这个系统中,SpringMVC作为前端控制器处理HTTP请求,Dubbo用于服务治理,MyBatis是持久层框架,MySQL是关系型数据库,...
SpringMVC是Spring框架的一部分,专门用于构建Web应用程序。...通过这个实例,你可以了解如何利用SpringMVC的注解驱动、依赖注入特性,以及如何与MySQL数据库无缝集成,为开发高效、健壮的Web应用奠定基础。
这是一个基于Java技术栈的应用实例,整合了多个关键的开源框架,包括Maven、SpringMVC、MyBatis、FreeMarker和Velocity。这些技术在IT行业中广泛应用于开发企业级Web应用程序,构建高效、灵活且可维护的系统。接下来...
2. **Controller**:控制器接口或基于注解的控制器类,处理请求并返回ModelAndView对象,其中包含视图名和数据模型。 3. **Model**:数据模型,用于存储业务数据。 4. **ViewResolver**:视图解析器,根据...
这个名为"SpringMVC精品资源--SpringMVC+Mybatis 脚手架.zip"的压缩包很可能包含了一个完整的项目模板或者学习资料,旨在帮助开发者快速搭建基于这两个框架的Web应用。 首先,SpringMVC是一个模型-视图-控制器(MVC...
4. **定义模型和控制器**:在业务逻辑层,我们可以创建基于Spring的bean,这些bean可以使用@Autowired注解注入所需的依赖,如DAO或Service。同时,创建对应的控制器类,处理HTTP请求,将处理结果转发到视图。 5. **...
2. **依赖注入**:SpringMVC利用Spring框架的依赖注入特性,使得组件之间的依赖关系可以通过配置文件或注解来声明,降低了耦合度。 3. **模型绑定**:它支持数据验证和模型对象的自动绑定,简化了表单数据的处理。 4...
8. **视图(View)**:在SpringMVC中,视图通常由JSP、Thymeleaf、FreeMarker等模板引擎处理。Controller处理完请求后,会指定一个视图名称,SpringMVC会根据视图解析器的规则找到对应的页面。 9. **测试**:为了...
通过以上步骤,可以实现一个完整的基于Spring、SpringMVC和MyBatis的Web应用。在整个过程中,需要注意以下几点: - **模块化设计**:遵循良好的软件工程原则,合理划分各层的职责。 - **异常处理**:合理处理可能...
总结来说,《基于SpringMvc+Spring图书信息管理系统》是一个全面展示JavaWeb开发技术的实例,涵盖了从后端服务到前端展示的完整流程,涉及SpringMvc的MVC模式、Spring的DI和AOP、数据库操作、安全控制等多个关键知识...
- **前端组件库**:EasyUI 是基于 jQuery 的一组 UI 组件,提供了丰富的界面元素,如表格、表单、对话框、菜单等。 - **DataGrid**:用于显示和操作表格数据,支持排序、筛选、分页等功能。 - **Form**:处理表单...
6. **ViewResolver**:视图解析器,根据 ModelAndView 中的视图名解析实际的视图对象,如 JSP、FreeMarker 等。 7. **注解驱动开发**:使用 @RequestMapping、@RequestParam、@PathVariable 等注解简化控制器的编写...
《构建基于Spring+SpringMVC+MyBatis+maven的简单Web应用》 在现代的Java Web开发中,Spring框架以其强大的功能和灵活性被广泛使用。SpringMVC作为Spring的一部分,是处理HTTP请求和响应的强大工具,而MyBatis则为...
SqlSessionFactory是MyBatis的核心,它负责创建SqlSession实例,而SqlSession则用于执行SQL语句。同时,我们需要为每个数据访问对象(DAO)创建一个Mapper接口,以及对应的XML映射文件,定义SQL查询和更新操作。 ...
2. SpringMVC:Spring的Web MVC模块,是一个基于模型-视图-控制器(MVC)设计模式的轻量级Web框架。SpringMVC负责处理HTTP请求,将请求转发到相应的控制器,再由控制器调用业务逻辑,最终返回响应给用户。它支持多种...
【金典springMVC+Hibernate框架实例】是一个深入讲解企业级应用开发的教程,它结合了Spring MVC和Hibernate两大主流框架,旨在帮助开发者构建高效、稳定且易于维护的Java Web应用。Spring MVC作为Spring框架的一部分...