`
lavafree
  • 浏览: 538997 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring mvc +freemarker不错的mvc搭配

    博客分类:
  • Java
阅读更多

spring mvc现在如火如荼,闲来无事也摆弄一番。

 

总体来说,spring mvc还是挺不错的,注解方式的配置,RESTful的风格,让人眼睛一亮,还有不错的性能。

废话不说,直接写上我的配置吧!

 

要用spring mvc 需要下载spring的包,还有freemarker。

 

 

web.xml配置

 

<servlet>
		<servlet-name>springmvc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>2</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>springmvc</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
 

spring mvc 主要通过DispatcherServlet做分发。

 

上面的servlet名字叫springmvc 所以在WEB-INF下面新建一个springmvc-servlet.xml文件

 

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:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"

	xsi:schemaLocation="http://www.springframework.org/schema/beans  
            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
            http://www.springframework.org/schema/context  
            http://www.springframework.org/schema/context/spring-context-3.0.xsd  
            http://www.springframework.org/schema/tx  
            http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  
            http://www.springframework.org/schema/jdbc  
            http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd">

	<!--注解说明 -->
	<context:annotation-config />
	<!-- 把标记了@Controller注解的类转换为bean -->
	<context:component-scan base-package="com.lantii.action" />
	<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 请求映射 -->
	<bean
		class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />

	<!-- freemarker的配置 -->
	<bean id="freemarkerConfigurer"
		class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
		<property name="templateLoaderPath" value="/WEB-INF/view/" />
		<property name="defaultEncoding" value="GBK" />
		<property name="freemarkerSettings">
			<props>
				<prop key="template_update_delay">10</prop>
				<prop key="locale">zh_CN</prop>
				<prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
				<prop key="date_format">yyyy-MM-dd</prop>
				<prop key="number_format">#.##</prop>
			</props>
		</property>
	</bean>
	<!-- FreeMarker视图解析 如返回userinfo。。在这里配置后缀名ftl和视图解析器。。 -->
	<bean id="viewResolver"
		class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
		<property name="viewClass"
			value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
		<property name="suffix" value=".ftl" />
		<property name="contentType" value="text/html;charset=GBK" />
		<property name="exposeRequestAttributes" value="true" />
		<property name="exposeSessionAttributes" value="true" />
		<property name="exposeSpringMacroHelpers" value="true" />
	</bean>

	<bean id="messageSource"
		class="org.springframework.context.support.ResourceBundleMessageSource"
		p:basename="i18n/messages" />
</beans>

配置完成,我们来写控制层代码:

 

MessageController.java

 

package com.lantii.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/message")
// url映射的名称
public class MessageController {

	@RequestMapping(value = "/{msg}", method = RequestMethod.GET)
	public String showMessage(@PathVariable String msg,
			HttpServletRequest request, HttpServletResponse response) {
		// TODO 处理请求
		request.setAttribute("message", msg); // 设置返回消息
		return "message"; // 设置返回页面,这里对应 /WEB-INF/view 目录下的 message.ftl 文件
	}

	@RequestMapping(value = "/add")
	public String addMessage(HttpServletRequest request, HttpServletResponse response) {
		request.setAttribute("message", "message is added");
		return "message";

	}
}

 UserController

 

package com.lantii.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.lantii.business.user.User;

@Controller
@RequestMapping("/user")
public class UserController {
	@RequestMapping(value = "/login")
	public String test(HttpServletRequest request,
			HttpServletResponse response, User userinfo) { // 非常方便可以直接在方法里面放入对象
		if (userinfo.getUsername().equals("lantii")
				&& userinfo.getPassword().equals("ok")) {
			request.setAttribute("userinfo", userinfo);
			return "users/loginok"; // 判断,将跳转不同的页面
		} else {
			return "users/loginerr"; // 判断,将跳转不同的页面
		}
	}
}

User.java

 

package com.lantii.business.user;

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;
	}
	
}

 

 

返回页message.ftl

 

<html>
<body>
	<p>This is my message:<br> ${message}</p>
</body>
</html>

 users下loginok.ftl

 

<html>
<body>
	hi, <b>${userinfo.username}</b>

</body>
</html>

 

接下来写一个前台调用的测试jsp

 

<%@ page language="java" contentType="text/html; charset=GBK"
	pageEncoding="GBK"%>
<!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=GBK">
<title>主页</title>
</head>
<body>
	<form METHOD=POST ACTION="user/login">
		用户名:<input TYPE="text" NAME="username" value="lantii"><br>
		密 码:<input TYPE="text" NAME="password" value="ok"><br> <input
			TYPE="submit">
	</form>
	<br>
	<a href="message/add" target="_blank">add</a>
	<br>
	<a href="message/哈哈哈" target="_blank">see:哈哈哈</a>
</body>
</html>

接下来就可用了。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8
2
分享到:
评论
8 楼 836489274杨 2016-01-08  
very good
6 楼 shantouyyt 2015-01-26  
有类似于c#的用户控件吗? 宏可以请求后台吗?
5 楼 gdgndbq 2014-12-08  
大大呀,不知道怎么导入,没用过Maven,求方法
4 楼 maoqb_it 2014-03-18  
我勒个去我为了下jar把你的源码下下来了,结果你用的meven
3 楼 xhdyw1225 2013-11-16  
不管好不好,先赞了再看
2 楼 qc_hao 2013-08-22  
非常好····
1 楼 panzs 2012-09-06  
感谢大大提供的例子

相关推荐

    spring mvc +freemarker不错的mvc搭配1.1

    spring mvc +freemarker不错的mvc搭配 原文: http://lavafree.iteye.com/blog/1096699 一、原来的程序有问题,导致maven无法编译运行。修改后解决了maven无法编译打包运行的问题,运行通过。 1.pom.xml 增加了必需的...

    struts2+spring2.5+hibernate3.2 + freemarker 全新功能实现的增删改查+freemarker 摸版

    struts2+spring2.5+hibernate3.2 + freemarker 全新功能实现的增删改查+freemarker 摸版 struts2 的方式自己去看简单。 spring2.5 是用注释来注入 hibernate3.2 是用ejb3注解映射关系 hibernate3 +个属性可以自动...

    spring MVC + freeMarker

    Spring MVC 和 FreeMarker 是两个在Java Web开发中广泛使用的框架,它们共同构建了一个高效、灵活的Web应用程序。Spring MVC是Spring框架的一部分,主要用于处理HTTP请求和响应,而FreeMarker则是一个模板引擎,用于...

    Spring mvc+hibernate+freemarker(开源项目)

    ### Spring MVC + Hibernate + FreeMarker 开源项目解析 #### 一、项目背景与技术栈介绍 本项目基于Spring MVC框架,结合Hibernate ORM工具以及FreeMarker模板引擎构建,旨在为初学者提供一个完整的Web应用程序...

    Spring 3 mvc + Freemarker 框架例子

    在本例子中,我们将深入探讨如何将Spring MVC与Freemarker模板引擎结合使用。 Freemarker是一个开源的模板引擎,用于生成动态HTML、XML或其他格式的文本。它不依赖任何Web容器,仅需要一个解析器来处理模板文件。...

    整合 freemarker +spring security + spring MVC + spring DATA jpa 前端jtable 简单的crud

    本项目结合了Freemarker、Spring Security、Spring MVC和Spring Data JPA,旨在实现前端JTable的简单CRUD(创建、读取、更新、删除)功能。以下是这些技术的详细介绍及其在项目中的应用。 **Freemarker** 是一个...

    Spring3.2.1MVC+Freemarker简单示例

    在本文中,我们将深入探讨如何使用Spring 3.2.1 MVC框架与Freemarker模板引擎结合,构建一个简单的Web应用程序。Spring MVC是Spring框架的一部分,它为开发RESTful Web服务提供了强大的支持,而Freemarker则是一个轻...

    spring mvc + hibernate + freemarker开源项目源码下载.zip

    《Spring MVC + Hibernate + Freemarker 开源项目源码解析》 在现代Web开发中,Spring MVC、Hibernate和Freemarker是三个非常重要的技术组件,它们分别承担着不同的职责,共同构建了一个高效、灵活且可扩展的后端...

    手动创建 SpringMvc +SpringDataJpa+Hibernate+ freemarker mavenProject+ 环境切换 webDemo

    总结来说,本项目是一个基础的Web开发框架,结合了SpringMVC的MVC设计模式、Spring Data JPA的数据访问层、Hibernate的ORM能力以及FreeMarker的模板引擎,同时还实现了环境配置的灵活切换,为开发高效、可维护的Web...

    Spring MVC + Tiles + FreeMarker 的整合

    在本文中,我们将深入探讨如何将Spring MVC、Tiles和FreeMarker三个强大的技术框架整合到一个Web应用程序中。Spring MVC作为Spring框架的一部分,提供了一个模型-视图-控制器(MVC)架构,使得开发者能够轻松地处理...

    JEEBBS hibernate3+spring mvc+spring3+freemarker

    以下是jeebbs v2.0版的功能列表: 1.发帖功能 2.回帖功能 3.删除帖子功能 4.屏蔽功能 5.引用功能 6.隐藏功能 7.评分功能 8.会员登录次数限制功能 9.强化会员登录功能 10.主题检索功能 ...

    spring mvc 3.2 + mybatis3.2 + freeMarker

    spring mvc 3.2 + mybatis3.2 + jsp + jstl + jquery + OSCache + freeMarker + mysql 用户登陆用统一的认证登陆接口:shiro; 前台用freeMarker 模板,还有 jsp!

    Spring MVC+MyBatis+FreeMarker整合开发java CMS内容发布系统easycms开源系统

    综上所述,easycms开源系统利用了Spring MVC的MVC架构来处理Web请求,MyBatis来处理数据库操作,FreeMarker则作为模板引擎生成动态视图。这样的组合为开发高效、灵活的内容管理系统提供了坚实的基础。通过学习和使用...

    SpringMVC+Hibernate+Freemarker 干净的框架

    SpringMVC作为Spring框架的一部分,负责处理HTTP请求和响应,提供模型-视图-控制器(MVC)架构;Hibernate是一个对象关系映射(ORM)框架,简化了数据库操作;而Freemarker则是一个模板引擎,用于生成动态HTML或其他...

    spring boot+mybatis+spring mvc+bootstrap开发停车位管理系统(调用百度地图API).rar

    本文将详细讲解如何使用Spring Boot、MyBatis、Spring MVC和Bootstrap技术栈开发一个停车位管理系统,并结合百度地图API实现车位的定位与导航功能。这些技术是现代Web开发中常用且强大的工具,它们各自承担着不同的...

    maven+springmvc+spring+hibernate+freemarker

    maven管理项目+springmvc+spring+hibernate+freemarker 集成框架。其中注解格式清晰,hibernate进行了代码封装,对开发效率有了提高,对异常进行了封装。freemarker也有优化,参考common包下。对日期工具类有各种...

    spring mvc+freemaker 开发实例

    Spring MVC 和 FreeMarker 是两种广泛应用于Java Web开发的技术。Spring MVC是Spring框架的一部分,它提供了一个用于构建MVC(Model-View-Controller)结构的轻量级、灵活的解决方案,而FreeMarker则是一个模板引擎...

    最新ssm:Spring + SpringMVC + Mybatis + FreeMarker 整合示例

    所用jar包均是目前位置最新版本:201710最新版: spring mvc4.3.12 , mybatis: 3.4.5 , FreeMarker : 2.3.26。 有mysql数据库脚本。导入即可使用。有个简单的使用文档,希望能助你一臂之力 节省开发时间 提升效率。

Global site tag (gtag.js) - Google Analytics