java整合html_springboot2.0整合同时支持jsp+html跳转的方法介绍(附代码)

本篇文章给大家带来的内容是关于springboot2.0整合同时支持jsp+html跳转的方法介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

说明一下 。整合会遇到的问题,

1、pom.xml文件同时放入thymeleaf 架包和jsp支持后, springboot的return模版会默认跳转到html ,

那怕是你并没有配置thymeleaf的属性

解决方案, 使用getRequestDispatcher方法来跳转到jsp页面, 就同时支持html和jsp了

request.getRequestDispatcher("/WEB-INF/views/testJsp.jsp").forward(request, response);

2、另外 使用getRequestDispatcher跳转到html页面的时候,thymeleaf 模版接收参数可能会出现问题。

解决方案1:html放弃使用thymeleaf 模版,然后在页面主动请求接口数据(AJAX POST等)

解决方案2:html继续使用thymeleaf 模版,用return模版 返回来跳转页面代码

UserController.javapackage com.example.demo.controller;

import com.example.demo.service.UserService;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

/**

* @author chenlin

*/

@Controller

@RequestMapping("/usersDemo")

public class UserController {

private static Logger log = LoggerFactory.getLogger(UserController.class);

@Resource

UserService userService;

@ResponseBody

@RequestMapping(value = "/test", produces = "application/json;charset=UTF-8", method = {RequestMethod.POST, RequestMethod.GET})

public List> test(){

log.info("进入了test方法!");

List> list=userService.userQueryAll();

return list;

}

@RequestMapping(value = "/testHtml", produces = "application/json;charset=UTF-8", method = {RequestMethod.POST, RequestMethod.GET})

public String testHtml(HttpServletRequest request, HttpServletResponse response){

List> list=userService.userQueryAll();

request.setAttribute("list",list);

log.info("进入了testHtml方法!");

return "views/testHtml";

}

@RequestMapping(value = "/testJsp", produces = "application/json;charset=UTF-8", method = {RequestMethod.POST, RequestMethod.GET})

public void testJsp( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

List> list=userService.userQueryAll();

request.setAttribute("list",list);

log.info("进入了testJsp方法!");

request.getRequestDispatcher("/WEB-INF/views/testJsp.jsp").forward(request, response);

}

}

配置文件server:

port: 8080

tomcat:

uri-encoding: UTF-8

servlet:

context-path: /

spring:

dataSource:

type: com.alibaba.druid.pool.DruidDataSource

url: jdbc:mysql://localhost:3306/db-test?useUnicode=true&characterEncoding=utf8&tinyInt1isBit=false&usessl=false

username: root

password: 123456

driverClassName: com.mysql.jdbc.Driver

mvc:

view: #新版本 1.3后可以使用

suffix: .jsp

prefix: /WEB-INF/

view: #老版本 1.4后被抛弃

suffix: .jsp

prefix: /WEB-INF/

thymeleaf:

#清除缓存

cache: false

mode: LEGACYHTML5 #非严格模式

prefix: /WEB-INF/ #默认 classpath:/templates/

suffix: .html

servlet:

content-type: text/html

mybatis:

mapper-locations: classpath:com/example/demo/mapper/*Mapper.xml #注意:一定要对应mapper映射xml文件的所在路径

type-aliases-package: com.example.demo.model # 注意:对应实体类的路径

configuration:

call-setters-on-nulls: true # 解决使用map类型接收查询结果的时候为null的字段会没有的情况

pom.xml<?xml version="1.0" encoding="UTF-8"?>

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.0.8.RELEASE

com.example

demo

0.0.1-SNAPSHOT

demo

Demo project for Spring Boot

1.8

5.1.47

org.springframework.boot

spring-boot-starter-jdbc

org.springframework.boot

spring-boot-starter-web

org.mybatis.spring.boot

mybatis-spring-boot-starter

2.0.0

org.springframework.boot

spring-boot-starter-test

test

com.alibaba

druid-spring-boot-starter

1.1.13

mysql

mysql-connector-java

${mysql.version}

org.springframework.boot

spring-boot-starter-thymeleaf

net.sourceforge.nekohtml

nekohtml

1.9.22

org.springframework.boot

spring-boot-starter-tomcat

provided

org.apache.tomcat.embed

tomcat-embed-jasper

provided

javax.servlet

javax.servlet-api

4.0.1

provided

javax.servlet

jstl

src/main/java

**/*.xml

false

src/main/webapp

META-INF/resources

**/**

以上就完了。

另外附加一个return 模版的java代码配置, 可以配置return模版的优先级,后面的文件格式,当然只能用getRequestDispatcher来跳转了

在启动类中添加,另外,配置文件参数和代码可重复 但是代码优先于配置文件。/**

* 添加对jsp支持

*

*/

@Bean

public ViewResolver getJspViewResolver() {

InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();

internalResourceViewResolver.setPrefix("/WEB-INF/");//前缀

internalResourceViewResolver.setSuffix(".jsp");//后缀

internalResourceViewResolver.setOrder(0);//优先级

return internalResourceViewResolver;

}

/**

* 添加对Freemarker支持

*

*/

@Bean

public FreeMarkerViewResolver getFreeMarkerViewResolver() {

FreeMarkerViewResolver freeMarkerViewResolver = new FreeMarkerViewResolver();

freeMarkerViewResolver.setCache(false);

freeMarkerViewResolver.setPrefix("/WEB-INF/");//前缀

freeMarkerViewResolver.setSuffix(".html");//后缀

freeMarkerViewResolver.setRequestContextAttribute("request");

freeMarkerViewResolver.setOrder(1);//优先级

freeMarkerViewResolver.setContentType("text/html;charset=UTF-8");

return freeMarkerViewResolver;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值