SpringMVC与FreeMarker整合如何指定首页的模版文件

SpringMVC与freemarker整合如何指定首页的模版文件

这个问题倒是困扰了我好久,由于是第一次接触freemarker

后来发现如果springmvc的控制器类名前面不写@RequestMapping注解

那控制器里面的方法就是根目录下面的控制器啊,比如有一个方法指定的@RequestMapping是

@RequestMapping("/index")
	public String initindex(HttpServletRequest request, HttpServletResponse response,ModelMap model){

那他就是根目录下的index.jhtml他的控制器啊。


因此根据这个思路,今天SpringMVC与FreeMarker整合如何指定首页的模版文件这个问题解决了。

方法如下:

配置我们的web.xml

这里表示index.jhtml文件是我们的默认首页文件(我们的首页根目录下不一定有这个文件)

<welcome-file-list>
	<welcome-file>index.jhtml</welcome-file>
</welcome-file-list>


然后修改我们的项目servlet


<servlet>
	<servlet-name>freemarker</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<init-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath*:config/freemarker-servlet.xml</param-value>
	</init-param>
	<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
	<servlet-name>freemarker</servlet-name>
	<url-pattern>*.jhtml</url-pattern>
</servlet-mapping>

主要是修改了url-pattern,以前我们这里是: /

现在修改为*.jhtml

这里表示所有.jhtml的文件都交割这个servlet处理


那么当我们运行url:http://localhost:8080/freemarker

他实际上就运行了index.jhtml文件,欢迎文件。


因此,他就会去找根目录下的index这个controller(springmvc的控制器)


这个控制器我简单的写了下,如下代码


@Controller
public class indexinfo {
	@RequestMapping("/index")
	public String initindex(HttpServletRequest request, HttpServletResponse response,ModelMap model){
		System.out.println("222222");
		System.out.println("111111111");
		return "aaa/index";
	}
}


注意上面控制器的类名前面,注解Controller的下面,我们并没有写RequestMapping,如果你写了就表示根目录下面的目录,所以我们这里不写,就表示这个类里面的方法是根目录的控制器。

因此这个initindex方法就是我们执行http://localhost:8080/freemarker,返回的视图文件

视图文件就是模版aaa下面的index模版文件(即index.ftl),为什么是这样,您可以看看我前面写的freemarker的相关文章,很多其他的配置,也可以看其他的文章

如这篇文章:

第一个FreeMarker例子 FreeMarker与springMVC整合


爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情Blog Img