学习目标:
学习Spring MVC、RESTful开发风格。
二分搜索树添加元素
学习内容:
学习了ModelAndView的核心用法,以及Spring MVC整合Freemarker.掌握了如何配置freemarker
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mv="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--
context:component-scan 标签作用
在Spring IOC初始化过程中,自动创建并管理com.imooc.springmvc及子包中
拥有以下注解的对象.
@Repository
@Service
@Controller
@Component
-->
<context:component-scan base-package="com.imooc.springmvc"></context:component-scan>
<!--启用Spring MVC的注解开发模式-->
<mvc:annotation-driven conversion-service="conversionService">
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<!-- response.setContentType("text/html;charset=utf-8") -->
<!-- <value>text/plain;charset=utf-8</value>-->
<value>text/html;charset=utf-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<!-- 将图片/JS/CSS等静态资源排除在外,可提高执行效率 -->
<mvc:default-servlet-handler/>
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.imooc.springmvc.converter.MyDateConverter"/>
</set>
</property>
</bean>
<bean id="ViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="contentType" value="text/html;charset=utf-8"/>
<property name="suffix" value=".ftl"/>
</bean>
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/ftl"/>
<property name="freemarkerSettings">
<props>
<prop key="defaultEncoding">UTF-8</prop>
</props>
</property>
</bean>
</beans>
package com.imooc.springmvc.controller;
import com.imooc.springmvc.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("/fm")
public class FreeMarkerController {
@GetMapping("/test")
public ModelAndView showTest(){
ModelAndView mav = new ModelAndView("/test");
User user=new User();
user.setUsername("andy");
mav.addObject("u", user);
return mav;
}
}
通过代码实现了如何向二分搜索树中添加元素:
public class BST<E extends Comparable<E>> {
private class Node{
public E e;
public Node left,right;
public Node(E e){
this.e=e;
left=null;
right=null;
}
}
private Node root;
private int size;
public BST(){
root=null;
size=0;
}
public int size(){
return size;
}
public boolean isEmpty(){
return size==0;
}
//向二分搜索树中添加新的元素e
public void add(E e){
root = add(root, e);
}
//向以node为根的二分搜索树中插入元素E,递归算法
//返回插入节点后二分搜索树的根
private Node add(Node node,E e){
if(node==null){
size++;
return new Node(e);
}
if(e.compareTo(node.e)<0){
node.left=add(node.left,e);
}else if(e.compareTo(node.e)>0)
node.right = add(node.right, e);
return node;
}
}
学习时间:
10:40-12:00 18:30-20:00
学习产出:
学会了如何使用ModelAndView和freemarker,并且初步了解了RESTful开发风格,其实现了真正的前后端分离。
掌握了二分搜索树的添加元素的思路,并且对二分搜索树结构有了更深入的理解。
本文介绍了SpringMVC框架的基本用法,包括配置Freemarker模板引擎和实现RESTful风格开发。同时,还详细讲解了二分搜索树的添加元素算法。
1038

被折叠的 条评论
为什么被折叠?



