澳门新葡亰娱乐网站-www.142net-欢迎您

澳门新葡亰娱乐网站是因为你还没有找到一条正确的致富之路,www.142net是将所有的游戏都汇集在一起的官方平台,因为澳门新葡亰娱乐网站这个网站当中有着大量的游戏攻略,托IP定位技术,传达终端直接到达的精准传播方式。

Java集成PageOffice在线展开编辑word文件,Java开拓在

来源:http://www.bhtsgq.com 作者:计算机知识 人气:159 发布时间:2019-05-30
摘要:开拓条件:JDK壹.8、Eclipse、Sping Boot Thymeleaf框架。 Thymeleaf是壹款用于渲染XML/XHTML/HTML伍内容的模板引擎。类似JSP,Velocity,FreeMaker等,它也得以随意的与SpringMVC等Web框架举行合并作为We

  开拓条件:JDK壹.8、Eclipse、Sping Boot Thymeleaf框架。

Thymeleaf是壹款用于渲染XML/XHTML/HTML伍内容的模板引擎。类似JSP,Velocity,FreeMaker等,它也得以随意的与Spring MVC等Web框架举行合并作为Web应用的模板引擎。与别的模板引擎相比较,Thymeleaf最大的风味是能够直接在浏览器中张开并科学展现模板页面,而无需运转全套Web应用,这是由于它补助html 原型,然后在html 标签里增添额外的习性来达到模板 数据的显得方式。浏览器解释html 时会忽略未定义的价签属性,所以thymeleaf 的沙盘能够静态地运作;当有数据重临到页面时,Thymeleaf 标签会动态地更迭掉静态内容,使页面动态展现。---摘自百度君。

0. 成立数量库表

CREATE TABLE `employees` (
  `userName` varchar(10) DEFAULT NULL,
  `password` varchar(100) DEFAULT NULL,
  `id` int(20) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Java调用logo是“P”Logo的第3方插件,完毕在线编辑保存Word文件(以jsp调用为例,援救SSM、SSH、SpringMVC等风靡框架)

壹. 营造Sping Boot Thymeleaf框架的品类(不再详述):

要写出简洁优雅的前台代码,Spring Boot 君推荐使用Thymeleaf代替jsp。接下来大家就看看哪些采用Thymeleaf模板引擎写出优雅的html代码。

1. 配置 maven

  1. 加多 mysql 数据库驱动的借助;
<!-- mysql 数据库驱动 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
  1. 添加 spring boot mybatis 的依赖;
<!-- spring boot mybatis 依赖:注意1.0.0版本还不支持拦截器插件 -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.1</version>
</dependency>

工具/原料

 

  • Eclipse或MyEclipse等java IDE环境

  • logo是“P”Logo的第贰方插件

  一. 新建一个maven project项目:demo。

1.1 添加Maven依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

可以查阅注重关系,开掘spring-boot-starter-thymeleaf下边已经席卷了spring-boot-starter-web,所以能够把spring-boot-starter-web的信赖去掉.

贰. 配备数据库

  1. Java集成PageOffice在线展开编辑word文件,Java开拓在线展开编辑保存Word文件。在 application.properties 文件中增添数据库连接配置代码;
# 设置数据库
spring.datasource.url=jdbc:mysql://域名:端口号/数据库名称?characterEncoding=UTF-8
spring.datasource.username=用户名
spring.datasource.password=密码
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10

方法/步骤

 

  1.  

    下载logo是“P”Logo的第三方插件开采包:百度时而PageOffice,从官方网站下载

  2.  

    以Myeclipse为例,新建八个Web Project,比方:wordonline

    图片 1

  3.  

    解压开采包,拷贝“集成文件lib”目录下的jar包到自身项指标“WEB-INFlib”目录下

    图片 2

  4.  

    参照“集成文件web.xml”文件,拷贝里面包车型大巴有关安顿到谐和项指标web.xml中

    图片 3

  5.  

    新建doc目录和测试文件test.doc;新建页面word.jsp,编写代码完成在线展开文件

    图片 4

  6.  

    运文章种,访问word.jsp页面;提醒注册时输入开辟包中提供的试用连串号

    图片 5

  7.  

    登记成功今后,文件在线展开(注意:此时只辅助IE或IE内核的浏览器,或Chrome 41及以下版本的浏览器)

    图片 6

  8.  

    新建管理公事保留的页面SaveFile.jsp(框架下行使action方法或RequestMapping方法等),调用FileSaver对象保存文件。

    图片 7

  9.  

    重新访问word.jsp,张开编辑文件后,点保存开关达成文件保留成效。(注意:此时还不能够支撑具有浏览器)

    图片 8

  10.  

    在index.jsp页面中增多js代码调用相关的.js文件;增加2个按键调用POBrowser.openWindowModeless方法张开word.jsp,完成帮忙具备的浏览器在线展开编辑保存word文件

    图片 9

  11.  

  贰. 修改pom.xml配置,把项目安排为Spring Boot项目;

1.2 改造html代码

接下去大家以login登入分界面来谈谈Thymeleaf模板引擎的利用方法,
或然以上一篇博客《Spring boot(叁):@RequestMapping之Form表单参数字传送递及POJO绑定实例讲明》的工程项目代码为根基,改换一下大家的登陆分界面

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="utf-8"/>

    <title>Login</title>

    <link rel="stylesheet" href="/SpringBootBase/css/bootstrap.min.css"/>
    <link rel="stylesheet" href="/SpringBootBase/css/customer/login.css"/>
</head>

<body>
    <div class="container">
        <form class="form-signin" action="./login" method="post">
            <h2 class="form-signin-heading">请 登 录</h2>
            <input type="text" class="form-control" placeholder="账号" name="username"/>
            <input type="password" class="form-control" placeholder="密码" name="password"/> 
            <button class="btn btn-lg btn-primary btn-block" type="submit">登录</button>
        </form>
    </div>
</body>
</html>

叁. 增添 mapper 的扫描表明

  1. 在 Main class 增多阐明;
package com.mm.spring.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.mm.spring.demo.mapper") // 扫描该包下相应的class,主要是 mybatis 的持久化类
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

  3. 配置Thymeleaf:增添Thymeleaf信赖,并在application.properties文件中增添Thymeleaf的配备;

一.二.1 xmlns:th命名空间

动用Thymeleaf引擎需求在html标签增加Thymeleaf模板引擎的命名空间:xmlns:th="http://www.thymeleaf.org",那样的话才足以在任何标签里面使用th:*如此那般的语法.那是下边语法的前提。

4. 开立实体类

package com.mm.spring.demo.bean;

public class Employees {

    private Integer id;
    private String userName;
    private String password;

    // 此处省略了 getter / setter 方法
}

  4. 新建DemoController,添加showWord、showIndex方法:

1.2.2 th:href="@{...}"的使用

引用的相对路线也足以用模板改变,“@{}”为引用静态能源文件,如:

<link rel="stylesheet" href="/SpringBootBase/css/bootstrap.min.css"/>
<link rel="stylesheet" href="/SpringBootBase/css/customer/login.css"/>

能够用thymeleaf模板改写为@{}的方式表示

<link rel="stylesheet" th:href="@{css/bootstrap.min.css}"/>
<link rel="stylesheet" th:href="@{css/customer/login.css}"/>

会引进/static目录下的/css/下的文书;

5. 创建 Mapper 接口

package com.mm.spring.demo.mapper;

import com.mm.spring.demo.bean.Employees;
import org.apache.ibatis.annotations.Select;
import java.util.List;

public interface EmployeesMapper {

    @Select("select * from employees where userName = #{name}")
     List<Employees> likeName(String name);

    @Select("select * from employees where id = #{id}")
    Employees getById(int id);

    @Select("select name from employees where id = #{id}")
    String getNameById(int id);
}
@RequestMapping(value="/word", method=RequestMethod.GET)
public ModelAndView showWord(HttpServletRequest request, Map<String,Object> map){
    ModelAndView mv = new ModelAndView("Word");
    return mv;
}
@RequestMapping(value="/index", method=RequestMethod.GET)
public ModelAndView showIndex(){
    ModelAndView mv = new ModelAndView("Index");
    return mv;
}

1.2.3 th:action="@{...}"的使用

表单POST的action url也足以用@{}表示:如

<form class="form-signin" action="./login" method="post">
    ...
</form>

<form class="form-signin" th:action="@{/login}" method="post">
    ...
</form>

于是退换产生后的代码就改成了那般:

<!DOCTYPE html>
<html lang="zh-cn" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8"/>

    <title>Login</title>

    <link rel="stylesheet" th:href="@{css/bootstrap.min.css}"/>
    <link rel="stylesheet" th:href="@{css/customer/login.css}"/>
</head>

<body>
    <div class="container">
        <form class="form-signin" th:action="@{/login}" method="post">
            <h2 class="form-signin-heading">请 登 录</h2>
            <input type="text" class="form-control" placeholder="账号" name="username"/>
            <input type="password" class="form-control" placeholder="密码" name="password"/> 
            <button class="btn btn-lg btn-primary btn-block" type="submit">登录</button>
        </form>
    </div>
</body>
</html>

我们再来运营一下,获得如下图结果:

图片 10

图1

察觉与大家上1篇的博旅客运输营的结果区别等了,css样式找不到了,为何会这么吧?
因为Spring Boot暗中同意扫描的Thymeleaf的模版路线为resources/templates/,而此时大家的index.html在webapp目录下。
接下去我们将index.html移到resources/templates/目录下,并再写个controller,将根目录的拜访都重定向到resources/templates/index.html
LoginController代码:

@RequestMapping(value ="/", method = RequestMethod.GET)
String home() {
    return "index";
}

运转一下,结果寻常
输入用户名及密码,后台也按期打字与印刷出

POJO: tech.onroad.springbootbase.bean.UserVO, hash code: 1537182416, userame: admin, password: 123456

6. 创建 Service 类

package com.mm.spring.demo.service;

import com.mm.spring.demo.bean.Employees;
import com.mm.spring.demo.mapper.EmployeesMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class EmployeesService {

    @Autowired
    private EmployeesMapper employeesMapper;

    public List<Employees> likeName(String name){
        return employeesMapper.likeName(name);
    }

    public  Employees getById(int id){
        return employeesMapper.getById(id);
    }

    public String getNameById(int id){
        return employeesMapper.getNameById(id);
    }
}

  5.  新建Thymeleaf模板页:Word.html、Index.html;

1.3 th:object="${...}"与th:field="*{...}"的使用

${...}用于获取变量值,对于javaBean的话使用变量名.属性名,如${user.name}
比如,假若需求将后台的值回显到前台,那应该如何做,此时th:object="${...}"与th:田野同志="*{...}"就派上用场了。

<form class="form-signin" th:action="@{/login}" th:object="${user}" method="post">
    <h2 class="form-signin-heading">请 登 录</h2>
    <input type="text" class="form-control" placeholder="账号" th:field="*{username}"></input>
    <input type="password" class="form-control" placeholder="密码" th:field="*{password}"></input> 
    <button class="btn btn-lg btn-primary btn-block" type="submit">登录</button>
</form>

在表单代码中增添th:object属性,将name属性换来th:田野(field)属性,在那之中th:object定义表单数据交由对象user,用th:田野先生定义表单数据属性,用*{}锁定上级定义的对象,{}内填充对象属性,提交表单时自动将属性值注入到目的中。
那前台怎样知道th:object="${user}"与后台的哪个Java Bean对应呢?在controller代码里就能够旁观端倪。

@RequestMapping(value ="/", method = RequestMethod.GET)
String home(Model model, UserVO user) {
    model.addAttribute("user", user);
    return "index";
}

@RequestMapping(value = "login", method = RequestMethod.POST)
public String login(Model model, UserVO user){
    System.out.println("POJO: "   user.getClass().getName()   
            ", hash code: "   user.hashCode()   ", "   user.toString());
    model.addAttribute("user", user);
    return "index";
}

对待于前方的代码,我们多了model.addAttribute("user", user); 也便是说那么些user对象是从后台通过Model传递过来的,当然也就能够识别啦。
大家来运转一下,输入https://localhost:8443/SpringBootBase/赢得如下分界面:

图片 11

图2

输入用户名admin及密码12345六,点击登入,获得如下图结果

图片 12

图3

察觉浏览器地址栏的UCR-VL已经化为https://localhost:8443/SpringBootBase/login,且账户名admin还被彰显着,表达大家的前台已能科学接受后台传递过来的变量值了。至于密码栏为何被清空,这是因为密码框那几个input的type="password"所致。

Thymeleaf模板引擎还大概有极其多的语法,如衡量规范th:if, th:unless;th:inline,...... 现在若供给详细介绍及demo,再逐级更新。

末段提出在application.properties配置关闭thymeleaf缓存,因为Spring Boot使用thymeleaf时默许是有缓存的,即你把二个页面代码改了不会刷新页面包车型大巴功用,你不能够不另行运营spring-boot的main()方法本领旁观页面改换的作用。

spring.thymeleaf.cache: false

完整代码可到小编的github下载:
https://github.com/onroadtech/SpringbootBase/
tag: spring_boot_thymeleaf
commit-id: 35860470354212e14da0af993025b6555ff917ac


本博文已协同发表于本身的村办博客网址,接待转发指正并评释出处。
村办博客: www.onroad.tech
指正邮箱: onroad_tech@163.com

7. 创建 Controller 类

package com.mm.spring.demo.controller;

import com.mm.spring.demo.bean.Employees;
import com.mm.spring.demo.service.EmployeesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;

@RestController
public class EmployeesController {

    @Autowired
    private EmployeesService employeesService;

    @GetMapping("/likeName")
    public List<Employees> likeName(String name){
        return employeesService.likeName(name);
    }
}

本文由澳门新葡亰发布于计算机知识,转载请注明出处:Java集成PageOffice在线展开编辑word文件,Java开拓在

关键词: 新葡萄京官网 Spring ... Spring boot 后端ing

最火资讯