首先搭建ssm框架,导入freemarker 的jar包,如图所示:
1.spring+springMVC的配置这里不再赘述,这里只是演示不连接数据库
web.xml将.action的影响换成.html
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
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_2_5.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/bean.xml</param-value>
</context-param>
<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>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.html</url-pattern> <!-- 这里-->
</servlet-mapping>
</web-app>
2.产生的影响在原来action包中的文件
把原来的action改成了html,我个人理解,可能是在地址栏上写html更符合常理。
package it.com.action;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class Test {
@RequestMapping(value="test.html") //这里的action都换成了html
public ModelAndView test(HttpSession session){
List list = new ArrayList();
list.add("a1");
list.add("a2");
list.add("a3");
list.add("a9");
session.setAttribute("list", list);
return new ModelAndView("index");
}
@RequestMapping(value="login.html")
public ModelAndView login(HttpServletRequest request){
String username = request.getParameter("username");
String userpwd = request.getParameter("userpwd");
if(username.equals("abc")&&userpwd.equals("111")){
return new ModelAndView("x1");
}else {
return new ModelAndView("x2");
}
}
}
3.springMVC的配置文件,这里要标明代替原来jsp页面的ftl文件路径
<?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-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd"
>
<context:component-scan base-package="it.com.*"></context:component-scan>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="suffix">
<value>.ftl</value>
</property>
<property name="contentType" value="text/html;charset=UTF-8"></property>
</bean>
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/templates/" /> <!--这里配置路径-->
</bean>
</beans>
4.templates中的文件都是静态的,就是讲原来jsp中关于java和servlet部分的影响删干净,纯净的html页面,当然freemarker有自己独立的语法,查api就是了
<html>
<head>
</head>
<body>
This is my JSP page. <br>
<table border="1">
<#list list as u>
<tr><td>${u}</td></tr>
</#list>
</table>
<form action="login.html">
<table>
<tr>
<td>用户名</td>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<td>密码</td>
<td><input type="text" name="userpwd"/></td>
</tr>
<tr>
<td colspan="1"><input type="submit" value="提交"/></td>
</tr>
</table>
</form>
</body>
</html>