JSTL相关资料手册打包学习及研究

因工作需要,最近在研究学习jstl,后台是java写的,以前研究过phpcms,不过接触了一段时间的jsp编写的后台,感觉实际上和phpcms数据调用方式大致相同,上手的确很容易,然而,有很多关于jstl语法的内容,恐怕未必能掌握的很好了,为了能够更好地工作,便找了些文档研究研究,遂与众享之…

为了避免被封,我设置了多重密码,有兴趣学习的人应该不会嫌麻烦吧(低调)…

该资料包,包含以下四个文件:

—-JavaServer Pages™ Standard Tag Library (好像内容还挺多的)
—-JSTL入门 IBM文档 (十年前的资料)
—-JSTL中文教程 (粗略的讲解了jstl,适合先看)
—-Prentice Hall – Core JSTL – Mastering The JSP Standard Tag Library (JSP标签库圣经?好像很厉害的样子)

下载地址

当然以上资料都有些年数了,不过不影响学习,最后声明,本资料仅供学习使用,请于24小时内删除,blablabla…

(解压密码:本域名完整长度以h开头,以t结尾)

JSP循环中为变量名赋值一个变量名?

标题我也不知道怎么说的好.不过还是得描述一下:

在一个三次循环的代码内,我新建一个变量,让每次循环,这个变量的名称都不同,而且三个变量的值也不同.如何才能最简单的写出来呢?

先来看看一段错误的(天真的代码):


<%@ page language="java" contentType="text/html; charset=gbk"
 pageEncoding="GBK"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="s" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ taglib prefix="f" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Insert title here</title>
</head>
<body>
<c:set var="arry">aaa|6,bbb|6,ccc|4</c:set>
<c:forTokens var="item" items="${arry}" delims="," varStatus="vs">
 <c:set var="index" value="${vs.count}"></c:set>
 <c:set var="tit">${fn:split(item,'|')[0]}</c:set>
 <c:set var="num">${fn:split(item,'|')[1]}</c:set>
 <c:set var="p${vs.count} }">
 name: ${tit}, number: ${num} <br />
 </c:set>
</c:forTokens>
${p1}${p2}${p3}
<!--
期望输出
栏目名称: 评测, 该栏目输出文章数量为6
栏目名称: 导购, 该栏目输出文章数量为6
栏目名称: 文化, 该栏目输出文章数量为4
-->
</body>
</html>

当然上面肯定不能输出成功的.根本不能在c:set内创建一个含有变量的变量名var=”p${vs.count}”!

所以我只好改成下面这段:


<%@ page language="java" contentType="text/html; charset=gbk"
 pageEncoding="GBK"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="s" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ taglib prefix="f" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Insert title here</title>
</head>
<body>
<c:set var="arry">aaa|6,bbb|6,ccc|4</c:set>
<c:forTokens var="item" items="${arry}" delims="," varStatus="vs">
 <c:set var="index" value="${vs.count}"></c:set>
 <c:set var="tit">${fn:split(item,'|')[0]}</c:set>
 <c:set var="num">${fn:split(item,'|')[1]}</c:set>
 <c:set var="p">
 name: ${tit}, number: ${num} <br />
 </c:set>
 <c:if test="${vs.count == 1}">
 <c:set var="p1" value="${p}"></c:set>
 </c:if>
 <c:if test="${vs.count == 2}">
 <c:set var="p2" value="${p}"></c:set>
 </c:if>
 <c:if test="${vs.count == 3}">
 <c:set var="p3" value="${p}"></c:set>
 </c:if>
</c:forTokens>
${p1}${p2}${p3}
</body>
</html>

那么很显然这段代码很臃肿,而且适用条件很有限,我认为在循环次数小于或等于3的情况下或许可以考虑,若是有5条甚至更多的时候,那么写这么多判断不如直接给每个变量进行赋值,那么我最近问了一些朋友,却找不出来更好的解决办法.今天的思考暂时告一段落.下次我来分享一些关于jstl的资料吧.

其他关于jstl学习资料请看: JSTL相关资料手册打包学习及研究

wordpress高亮插件Highlight.js手动添加及使用说明

使用WORDPRESS已经有很多年了,作为一个以技术内容为主的网站,经常会在文章内引用到各种语法的代码,在wordpress插件管理中,我们同样能够找到很多关于语法高亮的插件,有的十分完美,体积却异常庞大,比如我之前使用的Crayon Syntax Highlighter,若果博主们对自己的服务器很有信心,又喜欢强大的配置管理,这款插件实在是省事,可是我总觉过于臃肿,因为很多功能用不到,于是后来我找到了另一个插件SyntaxHighlighter Evolved,这款插件相对来讲很简洁,并且它所使用的高亮JS是很多大型网站都在用的,可是不知道为什么我这里看起来感觉怪怪的,并且它使用起来需要用到类似[html][/html]的标签,如果一旦放弃使用这个插件,恐怕就杯具了.虽然之前经过慎重考虑,选用了此插件,但是高亮效果感觉并不满意,最终寻找到了或许更好的或说更适合我的”高亮插件”–Highlight.js(其实wordpress里面有个wp-highlight.js的插件不知道是不是这个js,我没装,只是看了下,其实也是有下文提到的问题的.而且还不精简,所以我就决定手动添加)!

今天我就来简单介绍一下如何使用这个Highlight.js(如果喜欢自己琢磨,可以直接访问官方网站highlight.js查看相关说明)

当然我也是看了官方文档说明,总结给懒人看的.

本地测试

一. 准备必要文件

既然是使用它,那必须是需要一个highlight.js了,这个js可以自定义生成,这一点非常适合我,毕竟我只是一个小小小小的前端工作者,我只需要高亮显示html,css,js,json,最多加个php,sql了.于是,在这里,自定义配置这个js–Custom package,此处勾上自己需要的,然后点击Download按钮,很快一个zip文件就下载好了.

继续阅读“wordpress高亮插件Highlight.js手动添加及使用说明”

关于Emmet自带的全部snippets简单介绍

用sublime text的同学少不了会安装emmet插件.其实上手简单,但是很多技巧还是需要一些时间来研究的,这次我找到了emmet插件内的snippets.json文件,一般是位于..\(目录路径)\Sublime Text 3\Data\Packages\Emmet\emmet(这里使用的是sublime text 3),如果未找到,也可以将..\Data\Installed Packages\Emmet.sublime-package文件解压出来(我直接用7-zip解压,winRAR未测试),解压后找到..\Emmet\emmet\内的snippets.json打开一样可以查看…

为了方便大家查看我将该文件的内容在文章结尾处会贴出来.

因为是简单介绍,我就对其中某些特性说明.大家都知道emmet可以自动补全代码,例如在css文件中的{}内,我想输入position:relative;,我只需要输入por,他会自动提示想要的结果,我们直接按tab或是enter,就会自动出来,这个特性就不用说太多了,但是有时候,会因为输错,而无法高效的编写代码,所以,我们需要熟悉究竟最佳的缩写方式是什么,看这个文件就一目了然了.

为什么有时候无法提示出我们想要的代码?有可能是因为,他未能识别当前文件的语法条件.snippets.json同样写得很清楚,在css环境下,其中很多复杂的css3写法可以轻松输出,例如输入animtfc,他会自动补全很多不同兼容性的CSS3代码,十分方便,大家就自行测试了.

(最近找的EMMET速查手册干货放在前面既要醒目又要低调见Emmet Documentation cheat-sheet,更新日期:2015-06-05强行插入正文: )

继续阅读“关于Emmet自带的全部snippets简单介绍”

漫步者R1200TII简评(EQ调节增强听感)

赶着京东做活动,恰好抢到一张199-100的优惠券,整天带着耳机听,的确不是很方便,于是决定买一对2.0的音箱,虽然说漫步者为了最大限度的利用这张优惠券,必然是买漫步者R1000TC北美版,然而略对音质有要求的我,最终决定买去年年底上市的R1200TII,由于之前用过漫步者的音箱,印象还不错,03年买的一对2.1的,现在除了有点小毛病,基本还能用,所以信任的买了这款R1200TII,上午下单,下午便到了,辛辛苦苦把这个重家伙从公司弄回宿舍,安装了一番,开始试音.

漫步者r1200tii使用感受
漫步者r1200tii使用感受

寒舍简陋,桌子只有一米宽,如何容纳我这2.0音箱,24寸显示器,和15寸笔记本…暂且只能如此摆放.闲话说多了,说正题. 继续阅读“漫步者R1200TII简评(EQ调节增强听感)”