如何自定义JSTL标签
1.创建一个类,从SimpleTagSupport继承
A) 通过继承可以获得当前JSP页面上的对象,如JspContext
I) 实际上可以强转为PageContext
II) 通过PageContext可以拿到HttpServletRequest等对象
B) 通过JspContext可以获取输出流,向页面上输出内容(文字/HTML标签)
C) 重写doTage()方法实现标签的内部逻辑
2.在tld(标签库描述)文件中添加<tag>标签
A) 如果tld还没有,则从JSTL1.2官方jar包中找到c.tld,复制结构出来
B) tag标签中通过<attribute>标签可以指定标签的属性
I) 标签的属性实际上就是标签类的属性,需要在标签类中定义同名属性并封装getter和setter
II) SimpleTagSupport支持从标签中间提取内容,支持四种选项
1)JSP表示标签内部可以放其它标签、el表达式、代码块等
2)ScriptLess
表示标签中可以放文本/html等静态内容
3)empty 表示标签中没有内容
4)tagdependent
表示标签中的无内容由标签自己决定
C) tld需要在web.xml中通过jsp-config/taglib标签中声明一下
D) 如果打成jar包,放在META-INF中可以被服务器扫描到
SpringMVC 标签的属性中套JSTL标签报错的解决方法
<form:form action=”c:url value=”/user/list”/>”> </form:form>
会报错!找不到form:form结束标签
实际不是没有结束标签,而是不能再属性中嵌套JSTL
解决方法是改用EL表达式
<form:form action =”${ pageContext.request.contextPath}/user/list”></form:form>
Bootstrap在一行中放置多个内容的方法
<div class=”container”>
<div class=”row”> 用来抵消两端的15px内边距
<div class=”col-sm-8”>
<div class=”col-sm-4”>
链接为空字符串的作用
<a href=””> 刷新本页
<form action=””> 提交到本页
<a href=”../../../”> 注意这是相对路径,../会向上提一级
jQuery中2种给标签填内容的方法
<input>中的值 $(‘input’).val(‘填充到表单控件中的值’)
普通标签的文本内容 $(‘p’).text(‘填充的文本内容,html无效’)
普通标签的HTML内容 $(‘div’).html(‘<a href=”http://www.baidu.com”>’)
用JS控制表单提交
$('form').submit(); 用jquery找到表单,然后调用submit()方法
在表单内部的表单控件上通过事件调用submint()方法
<form>
<select onchange=”submit()”> onchange()下拉列表改变的
3种模型
数据模型: 与数据库中的表一一对应,通常定义在底层(数据层)
视图模型: 只在视图层使用,与数据库没有关系
业务模型: 它是中间计算使用模型,或者与第三方交互时使用的模型
比如支付时的支付宝或微信订单模型