从前端登录界面开始:http://localhost:8080/项目名[/a]
从src/webapp/WEB-INF/views/modules/sys/sysLogin.jsp 开始谈起
1. include指令:为一个页面导入一个固定的模块页面
格式:<%@ include file=”include.inc”%>
表示引入静态文本,也可以理解为把该页面的部分代码写到了另一页面(或者说是共享),而那另一页面中不能有相同的变量名,但可以借用主页面的内容。
参考博文:<%@ include file=""%>与<jsp:include page=""/>两种方式的作用
对于参考博文提到的执行时间的区别还有待理解。
2. taglib指令
taglib指令是用来引用标签库并设置标签库的前缀。这个指令允许JSP页面使用用户自定义的标签。格式:<%@ taglib prefix="自定义标签前缀" uri="标签库URI" %>
。
例如:<%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %>
也有:<%@ taglib prefix="sys" tagdir="/WEB-INF/tags/sys" %>
2.1 taglib指令
博文:为什么要用Taglib,Taglib到底有什么好处?有这样一句话:jsp中的一个标签儿对应着一段纯java代码,像过去一样,放在一个纯java文件当中,绝对不是html和java混在一起,难以调试。(该博主是个北京人吗,儿化音还带写在博客里的)。
再结合JSP指令–taglib指令的例子可以看到jsp页面代码里没有java代码但仍旧可以实现打印功能。也就能理解上面的那句话了。
那么在整个WEB-INF文件夹中,lib是一些jar包,tags和tlds都是taglib引用的标签库,views是前端页面展示。
2.2 tld和tags文件
但是taglib引用的标签库有tld文件,也有tags文件夹。这又是什么意思呢?
代码里有一句:<c:set var="ctx" value="${pageContext.request.contextPath}${fns:getAdminPath()}"/>
又是什么意思呢?
如果想要深入理解,可以参考:
- JSP标准标签库,如:<c:set>是用于保存数据。
- 谈谈jsp通过tld和tag自定义标签的两种方式的作用和区别
- 自定义标签
3. validate校验
在登录页面一般只需要校验用户名和密码的输入与否、正确与否,或者当出现要求输入验证码时,同样需要校验验证码的输入(暂时不考虑是否涉及cookie、session的校验)。
jeesite的sysLogin.jsp代码里,将校验规则写在了js里:
$("#loginForm").validate({
rules: {
validateCode: {remote: "${pageContext.request.contextPath}/servlet/validateCodeServlet"}
},
messages: {
username: {required: "请填写用户名."},password: {required: "请填写密码."},
validateCode: {remote: "验证码不正确.", required: "请填写验证码."}
},
errorLabelContainer: "#messageBox",
errorPlacement: function(error, element) {
error.appendTo($("#loginError").parent());
}
});
这里:
- rules:自定义规则,key:value 的形式,key 是要验证的元素(此处对应validateCode),value 可以是字符串或对象。
- messages:自定义的提示信息,key:value 的形式,key 是要验证的元素,value 可以是字符串或函数。
- errorLabelContainer:类型 Selector,把错误信息统一放在一个容器里面。
- errorPlacement:跟一个函数,可以自定义错误放到哪里。
- required:true 必须输入的字段。
- remote:"***": 使用 ajax 方法调用 *** 验证输入值。
对于代码更多的理解或者对于jquery validate想要更多的了解参考:jQuery Validate-菜鸟教程
看完了登录页面,突然不知道该跳转到哪个页面去了,是不是应该了解spring mvc模式如何控制页面跳转呢?