Tag文件使用

Tag文件和JSP文件很类似,可以被JSP文件动态加载调用,但是用户不能直接访问.

Tag文件的存储目录:

Tag文件规定放在/WEB-INF/tags目录或其子目录下,文件名随意.

Tag文件的使用:

<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>

Tag指令:

1.body-content 属性:设置Tag标记标记体的情况.可取的值:

  tagdependent:标签体内容直接被写入BodyContent,由自定义标签类来进行处理,而不被JSP容器解释.

  jSP:接受所有JSP语法,如定制的或内部的tag、scripts、静态HTML、脚本元素、JSP指令和动作。

  empty:空标记,即起始标记和结束标记之间没有内容。

  scriptless:接受文本、EL和JSP动作,默认取值.

2.pageEncoding 属性:设置tag文件的编码:

<%@ tag language="java" pageEncoding="UTF-8"%>

Include 指令:

  在Tag文件中可以使用这个指令包含其他JSP文件或Tag文件.

attribute 指令:

用于向Tag标记中传递参数:

name:参数名

required:参数是否必须,默认false

type:参数类型,默认String,若手动指定要叫上包名.

variable 指令:

用于返回对象(一般是处理结果)

name-given 属性:指定返回对象的变量名

variable-class 属性:指定返回对象的类型,默认 java.lang.String,此处必须填完整名称.

scope 属性:指定对象的有效范围,可取的值有:

NESTED:对象仅在Tag标记的标记体中有效,默认取值.

AT_BEGIN:一旦开始使用Tag标记,此对象就有效.

AT_END:只有在Tag标记结束后此对象才有效.

<%@ variable name-given="result" scope="AT_BEGIN" variable-class="java.lang.String"%>
jspContext.setAttribute("result", new Object());

使用例子:

在使用页面上使用的部分代码

<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>

<div>
    <tags:message content="${message}"/>
</div>

message.tag文件内容

 1 <%@ tag language="java" pageEncoding="UTF-8"%>
 2 <%@ include file="/WEB-INF/views/include/taglib.jsp"%>
 3 <%@ attribute name="content" type="java.lang.String" required="true" description="消息内容"%>
 4 <%@ attribute name="type" type="java.lang.String" description="消息类型:info、success、warning、error、loading"%>
 5 <script type="text/javascript">top.$.jBox.closeTip();</script>
 6 <c:if test="${not empty content}">
 7     <c:if test="${not empty type}"><c:set var="ctype" value="${type}"/></c:if><c:if test="${empty type}"><c:set var="ctype" value="${fn:indexOf(content,‘失败‘) eq -1?‘success‘:‘error‘}"/></c:if>
 8     <div id="messageBox" class="alert alert-${ctype} hide">
 9     <button data-dismiss="alert" class="close">×</button>
10     ${content}
11    </div>
12     <script type="text/javascript">if(!top.$.jBox.tip.mess){top.$.jBox.tip.mess=1;top.$.jBox.tip("${content}","${ctype}",{persistent:true,opacity:0});$("#messageBox").show();}</script>
13 </c:if>

后台传回去的数据关键代码

 1 /**
 2  * 添加Flash消息
 3  * @param message
 4  */
 5 protected void addMessage(RedirectAttributes redirectAttributes, String... messages) {
 6     StringBuilder sb = new StringBuilder();
 7     for (String message : messages){
 8         sb.append(message).append(messages.length>1?"<br/>":"");
 9     }
10     redirectAttributes.addFlashAttribute("message", sb.toString());
11 }
12
13
14
15
16 @RequestMapping(value = "assignUserPostRole")
17 public String assignUserPostRole(Long id, RedirectAttributes redirectAttributes) {
18     if (UserUtils.getUser().getId().equals(id)) {
19         addMessage(redirectAttributes, "初始用户角色失败, 不允许初始当前用户");
20     } else if (User.isAdmin(id)) {
21         addMessage(redirectAttributes, "初始用户角色失败, 不允许初始超级管理员用户");
22     } else {
23         systemService.assignUserPostRole(systemService.getUser(id));
24         addMessage(redirectAttributes, "初始用户角色成功");
25     }
26     return "redirect:" + Global.getAdminPath() + "/sys/user/?repage";
27 }

后台返回一个message信息

时间: 2024-08-29 03:19:58

Tag文件使用的相关文章

Tag文件和Tag标记

1 Tag文件的结构 ?Tag文件 ?扩展名为.tag的文本文件 ?结构几乎和JSP文件相同 ?一个Tag文件中可以有 ?普通的HTML标记符 ?某些特殊的指令标记(与JSP指令.动作标记对应) ?成员变量和方法 ?Java程序片 ?Java表达式. AddSum.tag <p>这是一个Tag文件,负责计算1~100内的奇数之和: <% int sum=0,i=1; for(i=1;i<=100;i++) { if(i%2==1) sum=sum+I; } out.println(

JSP 中的 tag 文件

在jsp文件中,可以引用 tag 和tld 文件,本文主要针对 tag 对于tag 文件 1)将此类文件放在 WEB-INF 下,比如 /WEB-INF/tags,tags 是目录,其下可以有多个.tag文件,如 tree.tag,menu.tag 2)在jsp 中使用 <%@ taglib prefix="sys" tagdir="/WEB-INF/tags" %> 来引入 3)在jsp 页面上,采用<sys:xxx> 来使用该 tag 文

java web tag文件使用

tag文件简单创建和使用 创建标记文件(.tag) 在标记文件中写入信息 在jsp文件中,引入标记文件 通过关键字调用标记文件 举例说明: 标记文件(show.tag) <%@ tag language="java" pageEncoding="UTF-8"%> <body bgcolor=yellow><P> <% int size=1; for(int i=1;i<=3;i++) { size=size+1; %&

vim 配置.vimrc文件

下面这个.vimrc文件是根据公司里的一个前辈配置的,这里记录下,方便以后使用.它的功能,其实跟网上很多.vimrc配置的相比,还是小儿科.我记录下来,主要还是因为自己已经习惯了这个工作环境跟快捷键. """""""""""""""""""""""""&quo

JSP TAG

Jsp tag 可以灵活的将公共JSP代码模块化,类似<jsp:include page="./include.jsp"></jsp:include>等等. 我们自定义的JSP模块代码可能在引用时会根据不同的引用场景,需要显示的内容略有不同,这时使用JSP.INCLUDE就不能满足我们的需求了. 因此,我们可以使用JSP tag 的方式实现. 第一步 在WEB-INF/tags目录下创建 demo.tag 文件 代码如下: <%@tag pageEncod

vim自动更新tag

用vim浏览C/C++代码时可以用ctags生成tag文件,这样可以很方便跳转到函数定义的地方,这个功能几乎所有的图形界面编辑器都有,比如VS,source insight等等,但是vim的tags文件是静态的,也就是说如果我们在源代码里新增了一些函数,原来的tags是不会自动更新的,我们也无法跳转到新增的函数定义处,这个问题怎么怎么办呢 我在网上搜索了很多地方,普遍给的方案就是将ctags命令映射到一个快捷键,这样只需要按一下快捷键就会生成新的tags文件,但这样有几个不方便的地方 每次tag

JSP中关于tag的学习

tag作用:编写调用tag实现代码复用.能防止用户直接访问tag页面.Include只能做到代码复用,但是不能防止用户在地址栏直接输入地址访问. 优点:     1.实现代码的复用 2.分离数据处理代码和数据显示代码,便于web应用的维护,和再开发 tag文件的保存:保存在WEB-INF/tags/下 tag标记: 格式一:<Tag 文件名 /> 格式二:<Tag 文件名> 标记体 </Tag 文件名> 在没有标记体的情况下只能用格式一,格式二会将标记体传入tag文件中

[JSP]tag在项目中的应用

JSP中的代码越来越多,冗余的内容自然也就多了,往往一个很小的改动你需要去改动N个页面,工作量大不说,还容易出错.今天带你彻底解决这个问题! tips: 图片点击放大   本文介绍的是jsp:tag中的一般使用方式,另外一种叫做:jsp:tld,两者同时使用并不冲突.我们习惯T们称作页面控件,通常一个项目中这两者都会使用到. jsp:tag主要做页面进行逻辑处理后显示,最后的效果就是你可以给T一些参数,T会处理后把产生的结果显示在页面中.举个栗子:<c:if>,<c:for>,&l

上传文件 从相机、图库获取与截取图片

Activity /**实际开发涉及文件上传.下载都不会自己写这些代码,一般会集成第三方库来完成,比如android-async-http,okhttp,xUtils等*/ public class UploadFileActivity extends ListActivity {     private ImageView imageView;     private TextView tv_info;     public static final int uid = 10415362;