spring mvc +freemarker不错的mvc搭配

来源:互联网 发布:数据挖掘 韩家炜 pdf 编辑:程序博客网 时间:2024/06/05 05:59

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

 

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

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

 

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

 

 

web.xml配置

 

Xml代码  收藏代码
  1. <servlet>  
  2.         <servlet-name>springmvc</servlet-name>  
  3.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  4.         <load-on-startup>2</load-on-startup>  
  5.     </servlet>  
  6.     <servlet-mapping>  
  7.         <servlet-name>springmvc</servlet-name>  
  8.         <url-pattern>/</url-pattern>  
  9.     </servlet-mapping>  
 

spring mvc 主要通过DispatcherServlet做分发。

 

 

 

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

 

 

 

springmvc-servlet.xml配置

 

 

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"  
  4.     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p"  
  5.     xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"  
  6.   
  7.     xsi:schemaLocation="http://www.springframework.org/schema/beans    
  8.             http://www.springframework.org/schema/beans/spring-beans-3.0.xsd    
  9.             http://www.springframework.org/schema/context    
  10.             http://www.springframework.org/schema/context/spring-context-3.0.xsd    
  11.             http://www.springframework.org/schema/tx    
  12.             http://www.springframework.org/schema/tx/spring-tx-3.0.xsd    
  13.             http://www.springframework.org/schema/jdbc    
  14.             http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd">  
  15.   
  16.     <!--注解说明 -->  
  17.     <context:annotation-config />  
  18.     <!-- 把标记了@Controller注解的类转换为bean -->  
  19.     <context:component-scan base-package="com.lantii.action" />  
  20.     <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 请求映射 -->  
  21.     <bean  
  22.         class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />  
  23.   
  24.     <!-- freemarker的配置 -->  
  25.     <bean id="freemarkerConfigurer"  
  26.         class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">  
  27.         <property name="templateLoaderPath" value="/WEB-INF/view/" />  
  28.         <property name="defaultEncoding" value="GBK" />  
  29.         <property name="freemarkerSettings">  
  30.             <props>  
  31.                 <prop key="template_update_delay">10</prop>  
  32.                 <prop key="locale">zh_CN</prop>  
  33.                 <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>  
  34.                 <prop key="date_format">yyyy-MM-dd</prop>  
  35.                 <prop key="number_format">#.##</prop>  
  36.             </props>  
  37.         </property>  
  38.     </bean>  
  39.     <!-- FreeMarker视图解析 如返回userinfo。。在这里配置后缀名ftl和视图解析器。。 -->  
  40.     <bean id="viewResolver"  
  41.         class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">  
  42.         <property name="viewClass"  
  43.             value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />  
  44.         <property name="suffix" value=".ftl" />  
  45.         <property name="contentType" value="text/html;charset=GBK" />  
  46.         <property name="exposeRequestAttributes" value="true" />  
  47.         <property name="exposeSessionAttributes" value="true" />  
  48.         <property name="exposeSpringMacroHelpers" value="true" />  
  49.     </bean>  
  50.   
  51.     <bean id="messageSource"  
  52.         class="org.springframework.context.support.ResourceBundleMessageSource"  
  53.         p:basename="i18n/messages" />  
  54. </beans>  

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

 

 

 

MessageController.java

 

 

Java代码  收藏代码
  1. package com.lantii.action;  
  2.   
  3. import javax.servlet.http.HttpServletRequest;  
  4. import javax.servlet.http.HttpServletResponse;  
  5. import org.springframework.stereotype.Controller;  
  6. import org.springframework.web.bind.annotation.PathVariable;  
  7. import org.springframework.web.bind.annotation.RequestMapping;  
  8. import org.springframework.web.bind.annotation.RequestMethod;  
  9.   
  10. @Controller  
  11. @RequestMapping("/message")  
  12. // url映射的名称  
  13. public class MessageController {  
  14.   
  15.     @RequestMapping(value = "/{msg}", method = RequestMethod.GET)  
  16.     public String showMessage(@PathVariable String msg,  
  17.             HttpServletRequest request, HttpServletResponse response) {  
  18.         // TODO 处理请求  
  19.         request.setAttribute("message", msg); // 设置返回消息  
  20.         return "message"// 设置返回页面,这里对应 /WEB-INF/view 目录下的 message.ftl 文件  
  21.     }  
  22.   
  23.     @RequestMapping(value = "/add")  
  24.     public String addMessage(HttpServletRequest request, HttpServletResponse response) {  
  25.         request.setAttribute("message""message is added");  
  26.         return "message";  
  27.   
  28.     }  
  29. }  

 UserController

 

 

Java代码  收藏代码
  1. package com.lantii.action;  
  2.   
  3. import javax.servlet.http.HttpServletRequest;  
  4. import javax.servlet.http.HttpServletResponse;  
  5. import org.springframework.stereotype.Controller;  
  6. import org.springframework.web.bind.annotation.RequestMapping;  
  7. import com.lantii.business.user.User;  
  8.   
  9. @Controller  
  10. @RequestMapping("/user")  
  11. public class UserController {  
  12.     @RequestMapping(value = "/login")  
  13.     public String test(HttpServletRequest request,  
  14.             HttpServletResponse response, User userinfo) { // 非常方便可以直接在方法里面放入对象  
  15.         if (userinfo.getUsername().equals("lantii")  
  16.                 && userinfo.getPassword().equals("ok")) {  
  17.             request.setAttribute("userinfo", userinfo);  
  18.             return "users/loginok"// 判断,将跳转不同的页面  
  19.         } else {  
  20.             return "users/loginerr"// 判断,将跳转不同的页面  
  21.         }  
  22.     }  
  23. }  

User.java

 

 

Java代码  收藏代码
  1. package com.lantii.business.user;  
  2.   
  3. public class User {  
  4.     private String username;  
  5.     private String password;  
  6.     public String getUsername() {  
  7.         return username;  
  8.     }  
  9.     public void setUsername(String username) {  
  10.         this.username = username;  
  11.     }  
  12.     public String getPassword() {  
  13.         return password;  
  14.     }  
  15.     public void setPassword(String password) {  
  16.         this.password = password;  
  17.     }  
  18.       
  19. }  

 

 

 

 

返回页message.ftl

 

 

Java代码  收藏代码
  1. <html>  
  2. <body>  
  3.     <p>This is my message:<br> ${message}</p>  
  4. </body>  
  5. </html>  

 users下loginok.ftl

 

 

Java代码  收藏代码
  1. <html>  
  2. <body>  
  3.     hi, <b>${userinfo.username}</b>  
  4.   
  5. </body>  
  6. </html>  

 

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

 

 

Java代码  收藏代码
  1. <%@ page language="java" contentType="text/html; charset=GBK"  
  2.     pageEncoding="GBK"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=GBK">  
  7. <title>主页</title>  
  8. </head>  
  9. <body>  
  10.     <form METHOD=POST ACTION="user/login">  
  11.         用户名:<input TYPE="text" NAME="username" value="lantii"><br>  
  12.         密 码:<input TYPE="text" NAME="password" value="ok"><br> <input  
  13.             TYPE="submit">  
  14.     </form>  
  15.     <br>  
  16.     <a href="message/add" target="_blank">add</a>  
  17.     <br>  
  18.     <a href="message/哈哈哈" target="_blank">see:哈哈哈</a>  
  19. </body>  
  20. </html>  

接下来就可用了。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • TestSpringMvcPrj.rar (10.6 KB)
  • 描述: 源码
  • 下载次数: 1401
0 0
原创粉丝点击