如何自定义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种模型

数据模型: 与数据库中的表一一对应,通常定义在底层(数据层)

视图模型: 只在视图层使用,与数据库没有关系

业务模型: 它是中间计算使用模型,或者与第三方交互时使用的模型

比如支付时的支付宝或微信订单模型

如何自定义JSTL标签与SpringMVC 标签的属性中套JSTL标签报错的解决方法的更多相关文章

  1. Eclipse 新建.jsp页面后,页面头部标签报错的解决方法

    Eclipse 新建.jsp页面后,页面头部标签报错的解决方法 1.报错地方: 2.解决方法: .jsp页面右键==>BUild Path ==>Configure Build Path. ...

  2. SpringMVC提交数据遭遇基础类型和日期类型报400错误解决方法

    使用SpringMVC开发的时候,页面如果有日期格式的数据,后台接受也是java.util.Date,则报告400错误 .下面是解决方案的演示示例: 这个是实体类,里面createDate就是java ...

  3. android include标签的使用,在RelativeLayout中使用include标签需注意!!!!!

    转:http://4265337.blog.163.com/blog/static/195375820127935731114/ include和merge标记的作用主要是为了解决layout的重用问 ...

  4. spring mvc 中自定义404页面在IE中无法显示favicon.ico问题的解决方法。

    此处用的是jsp,控制层用的是ModelAndView, 具体解决方法如下: @RequestMapping(value = "notfound", method = Reques ...

  5. Springmvc+Hibernate在Eclipse启动Tomcat需要很长时间的解决方法

    最近在学习SpringMvc开发,有一个提问困扰了很久,就是在Eclipse启动Tomcat需要很长时间,大概要1分多钟. 启动日志: 九月 08, 2016 8:59:01 下午 org.apach ...

  6. SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇基础类型和日期类型报400错误解决方法

    系统:WIN8.1 数据库:Oracle 11GR2 开发工具:MyEclipse 8.6 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 使用SpringMVC ...

  7. 一个class标签里面有多个属性时的提取标签

    <div class="uibox-con carpic-list03 border-b-solid">   #即这个标签同时满足三个class:“uibox”.“ca ...

  8. 使用thymeleaf一旦没有闭合标签就会报错怎么解决

    问题:input标签未关闭报bug,代码稍有不慎就出小问题 使用springboot的thymeleaf模板时默认会对HTML进行严格的检查,导致当你的标签没有闭合时就会通不过,例如: //要想通过, ...

  9. 获取元素属性中的[x] 标签: javascript 2016-12-24 22:35 105人阅读 评论(0)

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

随机推荐

  1. centos x64 vsftpd 530登陆错误问题

    近来在centos 6.0 x64版本下安装vsftpd,中间出现一些问题,解决过程总结如下: 安装vsftpd:yum install vsftpd 安装后配置为虚拟用户登陆,然后用:ftp loc ...

  2. 点滴积累【JS】---JS实现仿百度模糊搜索效果

    效果: HTML代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="In ...

  3. GNU C编译器的gnu11和c11

    国际标准组织发布c11后,gnu为自己的编译器发布两种标准gnu11和c11 gnu11:带gnu c扩展的c11标准,如果你的代码包含了typeof,__attribute__等等gnu的扩展,就必 ...

  4. ny33 蛇形填数

    蛇形填数 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为: 10 11 12 1 9 16 1 ...

  5. [转]James Bach:测试人员的角色

    [转]James Bach:测试人员的角色 2015-05-13 以前,我是个开发人员.我不喜欢这个工作,无尽的压力让我疲惫.我几乎从未感觉到自己的工作做得足够好.我从未有过真正的休息.如果我没做好, ...

  6. Python 元祖的操作

    注意:元祖定义后不可修改,单个元祖后面必须加逗号,否则认为是字符串:tuple = ('apple',) 1.定义元祖 tuple = ('apple','banana','grape','orang ...

  7. 纯CSS炫酷3D旋转立方体进度条特效

    在网站制作中,提高用户体验度是一项非常重要的任务.一个创意设计不但能吸引用户的眼球,还能大大的提高用户的体验.在这篇文章中,我们将大胆的将前面所学的3D立方体和进度条结合起来,制作一款纯CSS3的3D ...

  8. [misc]printf/fprintf/sprintf/snprintf函数

    转自:http://blog.csdn.net/To_Be_IT_1/article/details/32179549 需要包含的头文件 #include <stdio.h> int pr ...

  9. per-cpu

    What is percpu data? percpu data 是内核为smp系统中不同CPU之间的数据保护方式,系统为每个CPU维护一段私有的空间,在这段空间中的数据只有这个CPU能访问.但是这种 ...

  10. [android] android 获取网络连接信息

    效果图:  工具类 /** * 获取网络连接信息 * * 根据NetworkInfo可以知道有很多的连接方式和信息 * * ① 当没有任何可用网络的时候,networkinfo为null 判断netw ...