1、监听类的替代
监听类
@WebListener
public class InitDataListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("-------------------------初始化数据-------------------------");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("-------------------------初始化数据禁止-------------------------");
}
}监听类加载到web容器中需要配置扫描注解
@EnableTransactionManagement
@MapperScan(value = "com.javaxl.p4.mapper")
@ServletComponentScan(value= "com.javaxl.p4.listener")
@SpringBootApplication
public class P4Application {
public static void main(String[] args) {
SpringApplication.run(P4Application.class, args);
}
}2、html页面上接受不同作用域的值
默认显示request中数据,
显示session中数据要加上 session前缀
显示servletContext中数据要加上application前缀
//装到request
request.setAttribute("requestAge", 100);
//装到session
session.setAttribute("sessionName", "小明");
//装到ServletContext
servletContext.setAttribute("applicationNum", 1);
--------------------------------------------------------------------------------------
request中:
<span style="color: red;" th:text="${requestAge}"></span><br />
session中:
<span style="color: red;" th:text="${session.sessionName}"></span><br />
servletContext中:
<span style="color: red;" th:text="${application.applicationNum}"></span><br />3、html上对字符串的处理
判断是不是为空:null:
<span th:if="${name} != null">不为空</span>
<span th:if="${name1} == null">为空</span>
判断是不是为空字符串: “”
<span th:if="${#strings.isEmpty(name1)}">空的</span>
判断是否相同:
<span th:if="${name} eq 'jack'">相同于jack,</span>
<span th:if="${name} eq 'ywj'">相同于ywj,</span>
<span th:if="${name} ne 'jack'">不相同于jack,</span>
不存在设置默认值:
<span th:text="${name2} ?: '默认值'"></span>
是否包含(分大小写):
<span th:if="${#strings.contains(name,'ez')}">包ez</span>
<span th:if="${#strings.contains(name,'y')}">包j</span>
是否包含(不分大小写)
<span th:if="${#strings.containsIgnoreCase(name,'y')}">包j</span>
同理。。。下面的和JAVA的String基本一样。。。。不笔记解释,官网有
${#strings.startsWith(name,'o')}
${#strings.endsWith(name, 'o')}
${#strings.indexOf(name,frag)}// 下标
${#strings.substring(name,3,5)}// 截取
${#strings.substringAfter(name,prefix)}// 从 prefix之后的一位开始截取到最后,比如 (ywj,y) = wj, 如果是(abccdefg,c) = cdefg//里面有2个c,取的是第一个c
${#strings.substringBefore(name,suffix)}// 同上,不过是往前截取
${#strings.replace(name,'las','ler')}// 替换
${#strings.prepend(str,prefix)}// 拼字字符串在str前面
${#strings.append(str,suffix)}// 和上面相反,接在后面
${#strings.toUpperCase(name)}
${#strings.toLowerCase(name)}
${#strings.trim(str)}
${#strings.length(str)}
${#strings.abbreviate(str,10)}// 我的理解是 str截取0-10位,后面的全部用…这个点代替,注意,最小是3位可以结合使用
<li th:each="hotSpotNews : ${application.hotSpotNewsList }"><a href="#" th:title="${hotSpotNews.title }" th:text="${#strings.length(hotSpotNews.title) < 16 ? hotSpotNews.title : #strings.substring(hotSpotNews.title, 0, 16)+'...' }">热点新闻1</a></li>4、对日期的格式化
th:text="${#dates.format(news.publishDate, 'yyyy-MM-dd')}"5、页面的包含
被包含的页面html片段
<div class="col-md-9" th:fragment="newsList">
<ol class="breadcrumb badge-light" th:utext="${navCode}">
</ol>
<div class="datas news_type_list">
<ul>
<li th:each="news : ${newestNewsListWithType}">
【<span style="color: red" th:text="${#dates.format(news.publishDate, 'yyyy-MM-dd')}"></span>】
<a th:href="@{'/news/show/'+${news.newsId}}" th:title="${news.title }" th:text="${news.title}">最新新闻1</a>
</li>
</ul>
</div>
<ul class="pagination" th:utext="${pageCode}">
</ul>
</div>引用页面片段的页面
<!--class="col-md-9"可以不写,反正也是会被替换掉,但是为了代码的可读性高,还是加上-->
<div class="col-md-9" th:replace="${mainPage} :: newsList">
</div>也可以引用整个页面把( :: newList)改成( :: html)即可
6、thymeleaf中事件中直接拼接js代码
<button class="btn btn-mini btn-danger" type="button" th:onclick="'javascript:window.location.href=\''+@{/admin/link/del}+'\''">删除</button>上面是不携带参数的写法,下面携带参数的写法
<button class="btn btn-mini btn-danger" type="button" th:onclick="'javascript:window.location.href=\''+@{'/admin/link/del/'+${linkBack.linkId}}+'\''">删除</button>7、
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有