thymaleaf的介绍: 它是一个引擎模板,可以完全代替jsp,此外还有Velocity、FreeMarker等引擎模板。
它的特点:
Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。
Thymeleaf 开箱即用的特性。它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果,避免每天套模板、该jstl、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言。
Thymeleaf 提供spring标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。
controller:
model.addAttribute("pageInfo", new PageInfo(pageInfo));
前端html:(tGoods.xxx),count是序号,而不是主键id 然后就可以用:
变量表达式: th:each=“tGoods,count:${pagelnfo.list}” 或者下面代码 th:text
共有数据: 条
选择表达式: 只计算的是 你选择的变量,如果没有选择的变量,那和变量表达式没有太多的出入。 *{customer.name}
被指定的object由th:object属性定义:
...
...
...
国际文字化表达式也就是 #{ }: 消息表达式(井号表达式,资源表达式)。通常与th:text属性一起使用,指明声明了th:text的标签的文本是#{}中的key所对应的value,而标签内的文本将不会显示。
URL表达式:
URL表达式指的是把一个有用的上下文或回话信息添加到URL,这个过程经常被叫做URL重写。 @{/order/list} URL还可以设置参数: @{/order/details(id=${orderId})} 相对路径: @{…/documents/report}
让我们看这些表达式:
而且选择表达式和变量表达式可以混用,有些情况下,用法不同,但是效果差不多: 都是session.user对象 选择表达式:
Name: Sebastian .
Surname: Pepper .
Nationality: Saturn .
变量表达式:
Name: Sebastian .
Surname: Pepper .
Nationality: Saturn .
混用:
Name: Sebastian .
Surname: Pepper .
Nationality: Saturn .
表达式支持的语法
字面(Literals):
文本文字(Text literals): ‘one text’, ‘Another one!’,…
数字文本(Number literals): 0, 34, 3.0, 12.3,…
布尔文本(Boolean literals): true, false
空(Null literal): null
文字标记(Literal tokens): one, sometext, main,…
文本操作(Text operations)
字符串连接(String concatenation): +
文本替换(Literal substitutions): |The name is ${name}|
算术运算(Arithmetic operations)
二元运算符(Binary operators): +, -, *, /, %
减号(单目运算符)Minus sign (unary operator): -
布尔操作(Boolean operations)
二元运算符(Binary operators):and, or
布尔否定(一元运算符)Boolean negation (unary operator):!, not
比较和等价(Comparisons and equality)
比较(Comparators): >, <, >=, <= (gt, lt, ge, le)
等值运算符(Equality operators):==, != (eq, ne)
条件运算符(Conditional operators)
If-then: (if) ? (then)
If-then-else: (if) ? (then) : (else)
Default: (value) ?: (defaultvalue)
其实这些都可以被组合嵌套的:
'User is of type ' + (${user.isAdmin()} ? 'Administrator' : (${user.type} ?: 'Unknown'))
常用th标签都有那些?
关键字
功能介绍
案例
th:id
替换id
th:text
文本替换
description
th:utext
支持html的文本替换
conten
th:object
替换对象
th:value
属性赋值
th:with
变量赋值运算
th:style
设置样式
th:style="'display:' + @{(${sitrue} ? 'none' : 'inline-block')} + ''"
th:onclick
点击事件
th:onclick="'getCollect()'"
th:each
属性赋值
tr th:each="user,userStat:${users}">
th:if
判断条件
th:unless
和th:if判断相反
Login
th:href
链接地址
Login />
th:switch
多路选择 配合th:case 使用
th:case
th:switch的一个分支
User is an administrator
th:fragment
布局标签,定义一个代码片段,方便其它地方引用
th:include
布局标签,替换内容到引入的文件
/>
th:replace
布局标签,替换整个标签到引入的文件
th:selected
selected选择框 选中
th:selected="(${xxx.id} == ${configObj.dd})"
th:src
图片类地址引入
th:inline
定义js脚本可以使用变量
th:action
表单提交的地址
th:remove
删除某个属性
th:attr
设置标签属性,多个属性可以用逗号分隔
比如 th:attr="src=@{/image/aa.jpg},title=#{logo}",此标签不太优雅,一般用的比较少。
注:
1.all:删除包含标签和所有的孩子。 2.body:不包含标记删除,但删除其所有的孩子。 3.tag:包含标记的删除,但不删除它的孩子。 4.all-but-first:删除所有包含标签的孩子,除了第一个。 5.none:什么也不做。这个值是有用的动态评估。
我们也可以一个标签中包括多个th:x属性,其生效的优先级顺序为:
include,each,if/unless/switch/case,with,attr/attrprepend/attrappend,value/href,src ,etc,text/utext,fragment,remove。
几种常用的使用方法
1、赋值、字符串拼接
description
字符串拼接还有另外一种简洁的写法
2、条件判断 If/Unless
Thymeleaf中使用th:if和th:unless属性进行条件判断,下面的例子中,标签只有在th:if中条件成立时才显示:
Login
th:unless于th:if恰好相反,只有表达式中的条件不成立,才会显示其内容。
也可以使用 (if) ? (then) : (else) 这种语法来判断显示的内容
3、for 循环
1
Mark
Otto
@mdo
index
iterStat称作状态变量,属性有:
index:当前迭代对象的index(从0开始计算) count: 当前迭代对象的index(从1开始计算) size:被迭代对象的大小 current:当前迭代变量 even/odd:布尔值,当前循环是否是偶数/奇数(从0开始计算) first:布尔值,当前循环是否是第一个 last:布尔值,当前循环是否是最后一个
4、URL
URL在Web应用模板中占据着十分重要的地位,需要特别注意的是Thymeleaf对于URL的处理是通过语法@{…}来处理的。 如果需要Thymeleaf对URL进行渲染,那么务必使用th:href,th:src等属性,下面是一个例子
view
view
设置背景
根据属性值改变背景
几点说明:
上例中URL最后的(orderId=${o.id}) 表示将括号内的内容作为URL参数处理,该语法避免使用字符串拼接,大大提高了可读性
@{…}表达式中可以通过{orderId}访问Context中的orderId变量
@{/order}是Context相关的相对路径,在渲染时会自动添加上当前Web应用的Context名字,假设context名字为app,那么结果应该是/app/order
5、内联js
内联文本:[[…]]内联文本的表示方式,使用时,必须先用th:inline=”text/javascript/none”激活,th:inline可以在父级标签内使用,甚至作为body的标签。内联文本尽管比th:text的代码少,不利于原型显示。
js附加代码:
/*[+
var msg = 'This is a working application';
+]*/
js移除代码:
/*[- */
var msg = 'This is a non-working template';
/* -]*/
6、内嵌变量
为了模板更加易用,Thymeleaf还提供了一系列Utility对象(内置于Context中),可以通过#直接访问:
dates : java.util.Date的功能方法类。
calendars : 类似#dates,面向java.util.Calendar
numbers : 格式化数字的功能方法类
strings : 字符串对象的功能类,contains,startWiths,prepending/appending等等。
objects: 对objects的功能类操作。
bools: 对布尔值求值的功能方法。
arrays:对数组的功能类方法。
lists: 对lists功能类方法
sets
maps
…
下面用一段代码来举例一些常用的方法:
dates
/*
* Format date with the specified pattern
* Also works with arrays, lists or sets
*/
${#dates.format(date, 'dd/MMM/yyyy HH:mm')}
${#dates.arrayFormat(datesArray, 'dd/MMM/yyyy HH:mm')}
${#dates.listFormat(datesList, 'dd/MMM/yyyy HH:mm')}
${#dates.setFormat(datesSet, 'dd/MMM/yyyy HH:mm')}
/*
* Create a date (java.util.Date) object for the current date and time
*/
${#dates.createNow()}
/*
* Create a date (java.util.Date) object for the current date (time set to 00:00)
*/
${#dates.createToday()}
strings
/*
* Check whether a String is empty (or null). Performs a trim() operation before check
* Also works with arrays, lists or sets
*/
${#strings.isEmpty(name)}
${#strings.arrayIsEmpty(nameArr)}
${#strings.listIsEmpty(nameList)}
${#strings.setIsEmpty(nameSet)}
/*
* Check whether a String starts or ends with a fragment
* Also works with arrays, lists or sets
*/
${#strings.startsWith(name,'Don')} // also array*, list* and set*
${#strings.endsWith(name,endingFragment)} // also array*, list* and set*
/*
* Compute length
* Also works with arrays, lists or sets
*/
${#strings.length(str)}
/*
* Null-safe comparison and concatenation
*/
${#strings.equals(str)}
${#strings.equalsIgnoreCase(str)}
${#strings.concat(str)}
${#strings.concatReplaceNulls(str)}
/*
* Random
*/
${#strings.randomAlphanumeric(count)}
使用thymeleaf布局
使用thymeleaf布局非常的方便
定义代码片段
在页面任何地方引入:
th:include 和 th:replace区别,include只是加载,replace是替换
返回的HTML如下:
© 2016
下面是一个常用的后台页面布局,将整个页面分为头部,尾部、菜单栏、隐藏栏,点击菜单只改变content区域的页面
Header
left
sidebar
footer
任何页面想使用这样的布局值只需要替换中见的 content模块即可
也可以在引用模版的时候传参
layout 是文件地址,如果有文件夹可以这样写 fileName/layout:htmlhead htmlhead 是指定义的代码片段 如 th:fragment=“copy”
你可能感兴趣的:(自己总结的thymeleaf(引擎模板)一些基本用法)
一文带你走进车联网安全
一泽re.
车联网安全 安全 网络 服务器 汽车 iot
免责声明:该⽂章仅供安全学习和技术分享,请勿将该⽂章和⽂章中提到的技术⽤于违法活动上,切勿在⾮授权状态下对其他站点进⾏测试,如产⽣任何后果皆由读者本⼈承担,与作者无关!如有侵权,联系删除,转载请注明出处,感谢!0x00什么是车联网安全车联网安全主要指的是车联网系统的安全,该系统主要分为四个部分,主机、车载T-BOX、手机APP及后台系统。主机主要用于车内的影音娱乐,以及车辆信息显示也就是IVI或者
【人工智能时代】- 开源向量数据库比较:Chroma, Milvus, Faiss,Weaviate
xiaoli8748_软件开发
人工智能时代 人工智能 开源 数据库
语义搜索和检索增强生成(RAG)正在彻底改变我们的在线交互方式。实现这些突破性进展的支柱就是向量数据库。选择正确的向量数据库能是一项艰巨的任务。本文为你提供四个重要的开源向量数据库之间的全面比较,希望你能够选择出最符合自己特定需求的数据库。什么是向量数据库?向量数据库是一种将数据存储为高维向量的数据库,高维向量是特征或属性的数学表示。每个向量都有一定数量的维度,根据数据的复杂性和粒度,可以从数十到
UML太抽象了,活动图中传递的object,可没说是什么类型。
workflower
UML建模 uml 统一建模语言
Inthefigurebelow,theobjectnoderectangleOrderislinkedtoaclassdiagramthatfurtherdefinesthenode.Theclassdiagramshowsthatfillinganorderrequiresorder,lineitem,andthecustomer’strim-and-finishrequirements.An
ArkTs模块化语法
秃顶老男孩.
华为 harmonyos
1:模块化语法1.1:模块化基本认识模块化将一个大的程序,拆分成若干个小的模块,通过特定的语法,进行任意组合ArkTs中,每个ets文件,都可以看做一个模块1.2:默认导入导出1.2.1:概念指一个模块,只能默认导出一个值或对象,使用时,可以自定义导入名称组件导出一定是默认导出1.2.2:使用步骤当前模块中导出需要使用的地方模块导入//默认导出exprotdefault需要导出的内容//按需导出e
HarmonyOS相对布局
秃顶老男孩.
harmonyos 华为 ui
RelativeContainer()12+1:概念相对布局容器内部一定要有子组件才能显示,如果没子组件,该容器不占空间容器内子组件区分水平方法和垂直方向2:子组件方向水平方向:left,middle,right对应容器的HorizontalAlign.Start,HorizontalAlign.Center,HorizontalAlign.end垂直方向:top,center,bottom对应的
动态规划与一维数组
debug_running_Hu
动态规划 算法
动态规划与一维数组的结合主要用于解决那些状态可以由单个变量表示的问题。这通常意味着问题具有某种线性或单调递增的性质。一维数组dp[i]存储的是到达状态i的最优解。状态i的最优解通常依赖于它之前状态(0到i-1)的最优解。让我们通过几个例子来详细讲解:1.斐波那契数列:这是动态规划中最经典的例子之一。斐波那契数列的第n项定义为前两项之和:F(n)=F(n-1)+F(n-2),其中F(0)=0,F(1
HarmonyOS应用级别的状态管理
秃顶老男孩.
harmonyos 华为 ui
应用状态管理概念AppStorage:应用全局UI存储(范围是整个应用),是和应用进程绑定,由UI框架在应用程序启动时创建。为应用程序UI状态提供中央存储AppStorage是应用级的全局共享,相当于整个应用的‘中枢’,持久化数据PersistentStorage是通过AppStorage进行中转,才能与UI进行交互方法//AppStorage//AppStorage.ref('name')查找某
Python3 字典:解锁高效数据存储的钥匙
李智 - 重庆
Python 精讲精练 - 从入门到实战 python 经验分享 编程实战 趣味编程 编程技巧
Python3字典:解锁高效数据存储的钥匙内容简介本系列文章是为Python3学习者精心设计的一套全面、实用的学习指南,旨在帮助读者从基础入门到项目实战,全面提升编程能力。文章结构由5个版块组成,内容层层递进,逻辑清晰。基础速通:n个浓缩提炼的核心知识点,夯实编程基础;经典范例:10个贴近实际的应用场景,深入理解Python3的编程技巧和应用方法;避坑宝典:10个典型错误解析,提供解决方案,帮助读
车联网安全
黄一113530
网络安全 网络安全 渗透测试
1、智能汽车安全如何分类?智能汽车终极发展阶段是无人驾驶,车联网则是无人驾驶实现的基础,然而车联网技术应用过程中却会带来信息安全问题,具体可分为以下三种:一、用户隐私汽车智能化是建立在车辆动态数据收集及应用上的,如车辆行驶、车体、动力、安全及环境数据等层面,尤其是车辆行驶数据一直都被视为变现的大数据金矿,无论是车联网前装的车商,还是车联网后装的互联网科技公司,都在用户不知情的情况下收集车主驾驶历史
通过ChatGPT使用Mermaid.js生成时间序列图、组织结构图等
百态老人
生成式AI 经验分享 前端 人工智能
1、用mermaid.js生成京东网站改版时间序列图以下是使用Mermaid.js生成的京东网站改版时间序列图:gantttitle京东网站改版时间序列图dateFormatYYYY-MM-DDsection基础功能改版登录注册界面:done,2018-01-15,10d购物车页面优化:done,2018-02-10,10d商品详情页改版:done,2018-03-15,15d收银台页面改版:do
mysql数据库的学习(二)--sql语句用法及约束介绍
文艺小少年
数据库 mysql sql
目录一、引言二、SQL常用操作语句------>2.1、连接数据库------>2.2、DDL语句------>2.3、DML三、DQL语句------>3.1、简单查询------>3.2、条件查询------>3.3、模糊查询------>3.4、分组查询------>3.5、分页------>3.5、排序四、数据库约束------>4.1、主键约束------>4.2、唯一约束------>
ARM 处理器架构【转】
weixin_33690963
嵌入式 java php
ARM处理器架构转自:http://www.arm.com/zh/products/processors/instruction-set-architectures/index.phpARM架构是构建每个ARM处理器的基础。ARM架构随着时间的推移不断发展,其中包含的架构功能可满足不断增长的新功能、高性能需求以及新兴市场的需要。有关最新公布版本的信息,请参阅ARMv8架构。ARM架构支持跨跃多个性
Python 深度学习实战:生成对抗网络
AI天才研究院
深度学习实战 AI实战 AI大模型企业级应用开发实战 大数据 人工智能 语言模型 AI LLM Java Python 架构设计 Agent RPA
1.背景介绍生成对抗网络(GenerativeAdversarialNetwork,GAN)是近年来较火热的深度学习模型之一,其在图像合成、视频生成、文本数据生成等领域均取得了不俗的效果。与传统的机器学习模型不同,GAN可以生成真实有效的数据,无需人工标注数据。它由两部分组成:生成器(Generator)和判别器(Discriminator)。生成器通过学习,根据噪声或随机变量(latentvar
Helm Chart 实现 Kubernetes 应用多环境部署实战
ivwdcwso
运维 kubernetes 容器 Helm k8s 云原生
在现代软件开发中,通常需要将应用部署到多个环境(如开发环境、测试环境、生产环境)。每个环境的配置可能不同,例如数据库连接、资源限制、镜像版本等。HelmChart提供了强大的模板化和参数化功能,可以轻松实现多环境部署。本文将详细介绍如何使用HelmChart实现Kubernetes应用的多环境配置,并通过实战演示完整的部署流程。©ivwdcwso(ID:u012172506)1.多环境部署的需求在
【业界新闻】浪潮高端存储系统技术发展及展望(上篇)
nicole-cao
业界新闻 浪潮 高端存储 raid
转自:http://news.watchstor.com/corp-147547.htm[导读]从“9.11事件”之后大量的企业因为数据丢失而宣告破产可以看出数据的重要地位。随着计算机技术的发展,实现了数据计算和数据存储的分离,而数据存储由存储系统完成。存储系统的出现,尤其是高端存储系统的出现使得数据存储变得专业化,存储系统可以为用户提供更高性能、可用性和可靠性的数据存储功能。本系列文章,从高端存
Agent实战系列:快速自定义Agent在业务线落地:从入门到高级[实现tool串联、多轮对话、多Agent动态编排、静态编排等]
汀、人工智能
AI Agent LLM工业级落地实践 人工智能 AI Agent 多智能体协作 知识问答 智能问答 RAG AI编排流
Agent实战系列:快速自定义Agent在业务线落地:从入门到高级[实现tool串联、多轮对话、多Agent动态编排、静态编排等]本系列涵盖了多个关键功能的实现,包括tool串联、多轮对话、多Agent动态编排以及静态编排等。通过这些功能的学习与实践,用户将能够构建出功能丰富、灵活多变的Agent系统。tool串联让Agent能够调用多种工具和服务,多轮对话则让Agent能够与用户进行更加自然和深
车联网产业中网络安全与数据安全应该怎么做
securitypaper
白皮书学习 web安全 安全 网络
说明非常看好车联网产业的发展,新的产业出现,必将出现新的安全问题,因此希望对车联网安全所有学习和研究,本文主要是学习关于加强车联网和数据安全工作的通知2021做的一些摘录,希望不断的深入学习车联网相关安全内容车联网介绍车联网是新一代网络通信技术与汽车、电子、道路交通运输等领域深度融合的新兴产业形态。智能网联汽车是搭载先进的车载传感器、控制器、执行器等装置,并融合现代通信与网络技术,实现车与车、路、
使用 Docker Compose 一键启动 Redis、MySQL 和 RabbitMQ
前端 贾公子
docker redis mysql
目录一、DockerCompose简介二、服务配置详解1.Redis配置2.MySQL配置3.RabbitMQ配置三、数据持久化与时间同步四、部署与管理五、总结目录挂载与卷映射的区别现代软件开发中,微服务架构因其灵活性和可扩展性而备受青睐。为了支持微服务的高效运行,我们需要构建一个强大且可靠的基础设施。本文将介绍如何使用DockerCompose部署Redis、MySQL和RabbitMQ,这些组
【useEffect Hook】在组件中执行副作用操作
风茫
React react.js useEffect
引言useEffect是React中用于处理副作用的Hook,它允许你在函数组件中执行类似于类组件生命周期方法的操作。通过useEffect,你可以在组件挂载、更新和卸载时执行某些操作。常见副作用操作:AJAX请求:获取或提交数据。计时器:设置定时任务。异步操作:处理异步逻辑。更改真实的DOM对象:直接操作DOM元素。本地存储:读取或写入浏览器的本地存储。其它会对外部产生影响的操作:例如订阅事件等
Windows10环境下使用docker部署Dify
南南的sky
容器 运维 AIGC
前言最近带教导师让使用dify做一些工程项目,我在此之前没用过dify,也不知道怎么部署,便花了些时间研究了一下,这篇博客的主要目的是记录如何在windows10系统上使用docker部署dify,碰到了哪些问题以及解决方案。什么是DifyDify是一款开源的大语言模型(LLM)应用开发平台。它融合了后端即服务(BackendasService)和LLMOps的理念,使开发者可以快速搭建生产级的生
(c/c++)——C++和python的异常处理
想要躺平的一枚
C++ python c语言 c++
目录一、C++的异常处理二、python的异常处理——自定义异常一、C++的异常处理C++中选择用throw来抛出异常,catch来捕捉异常和处理try{//可能发生异常的语句//throw异常对象}catch(类型1){//发生类型1异常时的处理代码}catch(类型2){//发生类型2异常时的处理代码}catch(...){//不管什么异常,都在这里统一处理。}throw抛出异常对象,异常对象
掌握 SQLAlchemy 的一对一关系:6 个独立案例详解
Python私教
python FastAPI 数据库 jvm java 开发语言
在数据库设计中,一对一关系是一种常见的关系类型。例如,一个用户(User)可能对应一个用户详情(UserProfile),而一个用户详情只属于一个用户。SQLAlchemy提供了强大的工具来定义和操作这种关系。本文将通过6个独立的案例,详细讲解如何使用SQLAlchemy实现一对一关系,并覆盖各种常见的使用场景。每个案例都是完整的、可独立运行的脚本,方便你直接测试和学习。案例1:定义一对一关系并插
虚拟DOM
是三好
web补充 javascript 前端 开发语言
一、DOM1、DOM的基本概念DOM将网页的结构表示为一个树形结构,其中每个元素、属性和文本都被表示为树中的一个节点。文档节点(DocumentNode):树的根节点,代表整个HTML文档。元素节点(ElementNode):代表HTML元素,例如、、等。属性节点(AttributeNode):代表HTML元素的属性,例如id、class、href等。文本节点(TextNode):代表HTML元素
ECharts:数据可视化的魔法师,偶尔也会“皮”一下
Python私教
Web 使用Vue3进行前端开发 Vue 信息可视化 echarts 前端
在数据爆炸的时代,如何从海量数据中提取有价值的信息,并将其清晰易懂地呈现出来,成为了各行各业面临的共同挑战。数据可视化作为一种有效的信息传递手段,应运而生,并逐渐成为数据分析领域不可或缺的一部分。而在众多数据可视化工具中,ECharts凭借其强大的功能、灵活的配置和丰富的图表类型,脱颖而出,成为了众多开发者的首选利器。一、ECharts:数据可视化的利器ECharts是一个由百度开源的可视化图表库
第9章 空闲任务与阻塞延时的实现--总结
LS·Cui
freeRtos c语言 物联网
整理野火《FreeRTOS内核实现与应用开发实战指南》—基于野火STM32全系列(M3/4/7)开发板文章目录第9章空闲任务与阻塞延时的实现9.1实现空闲任务9.1.1定义空闲任务的栈9.1.2定义空闲任务的任务控制块9.1.3创建空闲任务9.2实现阻塞延时9.2.1vTaskDelay()函数9.2.2修改vTaskSwitchContext()函数9.3SysTick中断服务函数9.3.1xT
智能手机混战 谁能成为最后的王者?
nvxiaot
手机 htc iphone 三星 meego windows phone
智能手机混战谁能成为最后的王者?近几年来,智能手机随着价格的下降和性能/功能的增强,日益的加入到我们的生活当中,2010年第四季度,全球市场消费电子厂商记录出货1009亿部智能手机,远比出货为9210万台的PC高出很多,智能手机销量已经远超个人电脑来到我们的生活当中。当今最热门的智能手机生产厂商:HTC三星、摩托罗拉、诺基亚、索尼爱立信、LG,苹果,在这场智能手机的混战中谁才能成为最后的王者?以下
java版在线评标 竞标 邀标 评审专家 招标公告发布招投标系统源码
m0_72864708
java
功能描述1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查看所有的立项信息。主要功能包含:招标立项申请、非招标立项申请、采购立项管理。3、采购项目管理:可对项目采购过程全流程管理,包含功能有:评审人员的选取/抽取、基准价维护、供应商缴费审核、投标过程记录查
一定有人在首次使用DBeaver 时遇到oracle.jdbc.OracleDriver的问题
七分seven
oracle jar 数据库
问题:oracle.jdbc.OracleDriver;Can'tcreatedriverinstanceErrorcreatingdriver'Oracle'instance.Mostlikelyrequiredjarfilesaremissing.Youshouldconfigurejarsindriversettings.Reason:can'tloaddriverclass'oracle.
刚安装好postman接口测试工具,打开后白屏,怎么办?
七分seven
postman 测试工具
问题:postman刚安装好,打开出现白屏,或是一直加载的状态。解决方案:postman软件刚装好后,此时应该会提示你账号登录。此时,咱不要登录,直接将软件关闭,重新打开。重新打开时,不要登录,直接进入即可正常使用。很多同志出现白屏的原因,可能是掉进账号登录的坑里。postman基本的功能不登录也能正常使用。总结:解决首次打开postman白屏的关键在于不要去登录!!!
打开pycharm 报错:if you already have a 32-bit JDK installed,define a JAVE_HOME variable in
七分seven
pycharm ide python
打开pycharm报错:ifyoualreadyhavea32-bitJDKinstalled,defineaJAVE_HOMEvariablein.......解决方案:1.检查当前的pycharm执行文件可能是32位的,而当前电脑的系统确实64位的。所以只需要找到或重新下载64位的pycharm执行文件即可解决。2.如果电脑是32位的系统,也需要注意jdk需要配置32位的环境变量。jdk的环境
集合框架
天子之骄
java 数据结构 集合框架
集合框架
集合框架可以理解为一个容器,该容器主要指映射(map)、集合(set)、数组(array)和列表(list)等抽象数据结构。
从本质上来说,Java集合框架的主要组成是用来操作对象的接口。不同接口描述不同的数据类型。
简单介绍:
Collection接口是最基本的接口,它定义了List和Set,List又定义了LinkLi
Table Driven(表驱动)方法实例
bijian1013
java enum Table Driven 表驱动
实例一:
/**
* 驾驶人年龄段
* 保险行业,会对驾驶人的年龄做年龄段的区分判断
* 驾驶人年龄段:01-[18,25);02-[25,30);03-[30-35);04-[35,40);05-[40,45);06-[45,50);07-[50-55);08-[55,+∞)
*/
public class AgePeriodTest {
//if...el
Jquery 总结
cuishikuan
java jquery Ajax Web jquery方法
1.$.trim方法用于移除字符串头部和尾部多余的空格。如:$.trim(' Hello ') // Hello2.$.contains方法返回一个布尔值,表示某个DOM元素(第二个参数)是否为另一个DOM元素(第一个参数)的下级元素。如:$.contains(document.documentElement, document.body); 3.$
面向对象概念的提出
麦田的设计者
java 面向对象 面向过程
面向对象中,一切都是由对象展开的,组织代码,封装数据。
在台湾面向对象被翻译为了面向物件编程,这充分说明了,这种编程强调实体。
下面就结合编程语言的发展史,聊一聊面向过程和面向对象。
c语言由贝尔实
linux网口绑定
被触发
linux
刚在一台IBM Xserver服务器上装了RedHat Linux Enterprise AS 4,为了提高网络的可靠性配置双网卡绑定。
一、环境描述
我的RedHat Linux Enterprise AS 4安装双口的Intel千兆网卡,通过ifconfig -a命令看到eth0和eth1两张网卡。
二、双网卡绑定步骤:
2.1 修改/etc/sysconfig/network
XML基础语法
肆无忌惮_
xml
一、什么是XML?
XML全称是Extensible Markup Language,可扩展标记语言。很类似HTML。XML的目的是传输数据而非显示数据。XML的标签没有被预定义,你需要自行定义标签。XML被设计为具有自我描述性。是W3C的推荐标准。
二、为什么学习XML?
用来解决程序间数据传输的格式问题
做配置文件
充当小型数据库
三、XML与HTM
为网页添加自己喜欢的字体
知了ing
字体 秒表 css
@font-face {
font-family: miaobiao;//定义字体名字
font-style: normal;
font-weight: 400;
src: url('font/DS-DIGI-e.eot');//字体文件
}
使用:
<label style="font-size:18px;font-famil
redis范围查询应用-查找IP所在城市
矮蛋蛋
redis
原文地址:
http://www.tuicool.com/articles/BrURbqV
需求
根据IP找到对应的城市
原来的解决方案
oracle表(ip_country):
查询IP对应的城市:
1.把a.b.c.d这样格式的IP转为一个数字,例如为把210.21.224.34转为3524648994
2. select city from ip_
输入两个整数, 计算百分比
alleni123
java
public static String getPercent(int x, int total){
double result=(x*1.0)/(total*1.0);
System.out.println(result);
DecimalFormat df1=new DecimalFormat("0.0000%");
百合——————>怎么学习计算机语言
百合不是茶
java 移动开发
对于一个从没有接触过计算机语言的人来说,一上来就学面向对象,就算是心里上面接受的了,灵魂我觉得也应该是跟不上的,学不好是很正常的现象,计算机语言老师讲的再多,你在课堂上面跟着老师听的再多,我觉得你应该还是学不会的,最主要的原因是你根本没有想过该怎么来学习计算机编程语言,记得大一的时候金山网络公司在湖大招聘我们学校一个才来大学几天的被金山网络录取,一个刚到大学的就能够去和
linux下tomcat开机自启动
bijian1013
tomcat
方法一:
修改Tomcat/bin/startup.sh 为:
export JAVA_HOME=/home/java1.6.0_27
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export PATH=$JAVA_HOME/bin:$PATH
export CATALINA_H
spring aop实例
bijian1013
java spring AOP
1.AdviceMethods.java
package com.bijian.study.spring.aop.schema;
public class AdviceMethods {
public void preGreeting() {
System.out.println("--how are you!--");
}
}
2.beans.x
[Gson八]GsonBuilder序列化和反序列化选项enableComplexMapKeySerialization
bit1129
serialization
enableComplexMapKeySerialization配置项的含义
Gson在序列化Map时,默认情况下,是调用Key的toString方法得到它的JSON字符串的Key,对于简单类型和字符串类型,这没有问题,但是对于复杂数据对象,如果对象没有覆写toString方法,那么默认的toString方法将得到这个对象的Hash地址。
GsonBuilder用于
【Spark九十一】Spark Streaming整合Kafka一些值得关注的问题
bit1129
Stream
包括Spark Streaming在内的实时计算数据可靠性指的是三种级别:
1. At most once,数据最多只能接受一次,有可能接收不到
2. At least once, 数据至少接受一次,有可能重复接收
3. Exactly once 数据保证被处理并且只被处理一次,
具体的多读几遍http://spark.apache.org/docs/lates
shell脚本批量检测端口是否被占用脚本
ronin47
#!/bin/bash
cat ports |while read line
do#nc -z -w 10 $line
nc -z -w 2 $line 58422>/dev/null2>&1if[ $?-eq 0]then
echo $line:ok
else
echo $line:fail
fi
done
这里的ports 既可以是文件
java-2.设计包含min函数的栈
bylijinnan
java
具体思路参见:http://zhedahht.blog.163.com/blog/static/25411174200712895228171/
import java.util.ArrayList;
import java.util.List;
public class MinStack {
//maybe we can use origin array rathe
Netty源码学习-ChannelHandler
bylijinnan
java netty
一般来说,“有状态”的ChannelHandler不应该是“共享”的,“无状态”的ChannelHandler则可“共享”
例如ObjectEncoder是“共享”的, 但 ObjectDecoder 不是
因为每一次调用decode方法时,可能数据未接收完全(incomplete),
它与上一次decode时接收到的数据“累计”起来才有可能是完整的数据,是“有状态”的
p
java生成随机数
cngolon
java
方法一:
/**
* 生成随机数
* @author
[email protected]
* @return
*/
public synchronized static String getChargeSequenceNum(String pre){
StringBuffer sequenceNum = new StringBuffer();
Date dateTime = new D
POI读写海量数据
ctrain
海量数据
import java.io.FileOutputStream;
import java.io.OutputStream;
import org.apache.poi.xssf.streaming.SXSSFRow;
import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.apache.poi.xssf.streaming
mysql 日期格式化date_format详细使用
daizj
mysql date_format 日期格式转换 日期格式化
日期转换函数的详细使用说明
DATE_FORMAT(date,format) Formats the date value according to the format string. The following specifiers may be used in the format string. The&n
一个程序员分享8年的开发经验
dcj3sjt126com
程序员
在中国有很多人都认为IT行为是吃青春饭的,如果过了30岁就很难有机会再发展下去!其实现实并不是这样子的,在下从事.NET及JAVA方面的开发的也有8年的时间了,在这里在下想凭借自己的亲身经历,与大家一起探讨一下。
明确入行的目的
很多人干IT这一行都冲着“收入高”这一点的,因为只要学会一点HTML, DIV+CSS,要做一个页面开发人员并不是一件难事,而且做一个页面开发人员更容
android欢迎界面淡入淡出效果
dcj3sjt126com
android
很多Android应用一开始都会有一个欢迎界面,淡入淡出效果也是用得非常多的,下面来实现一下。
主要代码如下:
package com.myaibang.activity;
import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.CountDown
linux 复习笔记之常见压缩命令
eksliang
tar解压 linux系统常见压缩命令 linux压缩命令 tar压缩
转载请出自出处:http://eksliang.iteye.com/blog/2109693
linux中常见压缩文件的拓展名
*.gz gzip程序压缩的文件
*.bz2 bzip程序压缩的文件
*.tar tar程序打包的数据,没有经过压缩
*.tar.gz tar程序打包后,并经过gzip程序压缩
*.tar.bz2 tar程序打包后,并经过bzip程序压缩
*.zi
Android 应用程序发送shell命令
gqdy365
android
项目中需要直接在APP中通过发送shell指令来控制lcd灯,其实按理说应该是方案公司在调好lcd灯驱动之后直接通过service送接口上来给APP,APP调用就可以控制了,这是正规流程,但我们项目的方案商用的mtk方案,方案公司又没人会改,只调好了驱动,让应用程序自己实现灯的控制,这不蛋疼嘛!!!!
发就发吧!
一、关于shell指令:
我们知道,shell指令是Linux里面带的
java 无损读取文本文件
hw1287789687
读取文件 无损读取 读取文本文件 charset
java 如何无损读取文本文件呢?
以下是有损的
@Deprecated
public static String getFullContent(File file, String charset) {
BufferedReader reader = null;
if (!file.exists()) {
System.out.println("getFull
Firebase 相关文章索引
justjavac
firebase
Awesome Firebase
最近谷歌收购Firebase的新闻又将Firebase拉入了人们的视野,于是我做了这个 github 项目。
Firebase 是一个数据同步的云服务,不同于 Dropbox 的「文件」,Firebase 同步的是「数据」,服务对象是网站开发者,帮助他们开发具有「实时」(Real-Time)特性的应用。
开发者只需引用一个 API 库文件就可以使用标准 RE
C++学习重点
lx.asymmetric
C++ 笔记
1.c++面向对象的三个特性:封装性,继承性以及多态性。
2.标识符的命名规则:由字母和下划线开头,同时由字母、数字或下划线组成;不能与系统关键字重名。
3.c++语言常量包括整型常量、浮点型常量、布尔常量、字符型常量和字符串性常量。
4.运算符按其功能开以分为六类:算术运算符、位运算符、关系运算符、逻辑运算符、赋值运算符和条件运算符。
&n
java bean和xml相互转换
q821424508
java bean xml xml和bean转换 java bean和xml转换
这几天在做微信公众号
做的过程中想找个java bean转xml的工具,找了几个用着不知道是配置不好还是怎么回事,都会有一些问题,
然后脑子一热谢了一个javabean和xml的转换的工具里,自己用着还行,虽然有一些约束吧 ,
还是贴出来记录一下
顺便你提一下下,这个转换工具支持属性为集合、数组和非基本属性的对象。
packag
C 语言初级 位运算
1140566087
位运算 c
第十章 位运算 1、位运算对象只能是整形或字符型数据,在VC6.0中int型数据占4个字节 2、位运算符: 运算符 作用 ~ 按位求反 << 左移 >> 右移 & 按位与 ^ 按位异或 | 按位或 他们的优先级从高到低; 3、位运算符的运算功能: a、按位取反: ~01001101 = 101
14点睛Spring4.1-脚本编程
wiselyman
spring4
14.1 Scripting脚本编程
脚本语言和java这类静态的语言的主要区别是:脚本语言无需编译,源码直接可运行;
如果我们经常需要修改的某些代码,每一次我们至少要进行编译,打包,重新部署的操作,步骤相当麻烦;
如果我们的应用不允许重启,这在现实的情况中也是很常见的;
在spring中使用脚本编程给上述的应用场景提供了解决方案,即动态加载bean;
spring支持脚本