java 客户化排序_第八部分_客户化JSP标签
EL语言(减少JSP页面中的Java代码)
String password = request.getParameter("password");
%>
username:
password:
username: ${param.username }
password: ${param.password }
属性范围->在EL中的名称
Page->pageScope;Request->requestScope;Session->sessionScope;Application->applicationScope.
此外,启动tomcat服务器,在浏览器中访问localhost:8080/examples,选择JSP Examples,其中给出了若干实例,也可以进行相关的学习。
首先创建标签处理类HelloTag.java:
package com.jsp.tag;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.TagSupport;
public class HelloTag extends TagSupport
{
public HelloTag()
{
}
public int doStartTag() throws JspException
{
try
{
this.pageContext.getOut().print("nihao");
}
catch (Exception ex)
{
throw new JspTagException(ex.getMessage());
}
return EVAL_BODY_INCLUDE;
}
// Method called when the closing hello tag is encountered
public int doEndTag() throws JspException
{
try
{
// We use the pageContext to get a Writer
// We then print the text string Hello
this.pageContext.getOut().print("Hello");
}
catch (Exception e)
{
throw new JspTagException(e.getMessage());
}
return EVAL_PAGE;
}
public void release()
{
// Call the parent's release to release any resources
// used by the parent tag.
// This is just good practice for when you start creating
// hierarchies of tags.
super.release();
}
}
然后,创建标签库描述文件(在WEB-INF下新建一个tld(taglib description )文件,这里命名为mytaglib.tld):
/p>
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
1.0
1.1
mytaglib
/mytaglib
hello
com.jsp.tag.HelloTag
empty
然后,在hellowithtag1.jsp中引入标签库,然后插入标签:
tag library example
访问http://localhost:8080/test/hellowithtag1.jsp,输出nihaoHello
范例2:
创建一个能替换test应用中JSP网页的静态文本的标签,这个标签名为message,它放在mytaglib标签库中。
首先在WEB-INF下面放置一个静态文本messageresource.properties
hello.title = Tile of hello.jsp
hello.hello = Hello
然后通过一个DispatcherServlet装载:
package com.test.servlet;
import java.io.InputStream;
import java.util.Properties;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
public class DispatcherServlet extends HttpServlet
{
public void init(ServletConfig config) throws ServletException
{
super.init(config);
Properties ps = new Properties();
try
{
ServletContext context = config.getServletContext();
InputStream in = context
.getResourceAsStream("/WEB-INF/messageresource.properties");
ps.load(in);
in.close();
context.setAttribute("ps", ps);
}
catch (Exception e)
{
e.printStackTrace();
}
}
public void destroy()
{
}
}
接下来,是标签库的处理类MessageTag.java:
package com.jsp.tag;
import java.util.Properties;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.TagSupport;
public class MessageTag extends TagSupport
{
private String key = null;
public MessageTag()
{
}
public String getKey()
{
return this.key;
}
public void setKey(String key)
{
this.key = key;
}
// Method called when the closing hello tag is encountered
public int doEndTag() throws JspException
{
try
{
Properties ps = (Properties) pageContext.getAttribute("ps",
PageContext.APPLICATION_SCOPE);
String message = (String) ps.get(key);
pageContext.getOut().print(message);
}
catch (Exception e)
{
throw new JspTagException(e.getMessage());
}
return EVAL_PAGE;
}
public void release()
{
super.release();
}
}
添加相关信息到标签库描述文件mytaglib.tld中:
/p>
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
1.0
1.1
mytaglib
/mytaglib
hello
com.jsp.tag.HelloTag
empty
message
com.jsp.tag.MessageTag
empty
key
true
最后,在hellowithtag2.jsp文件中引入标签库,然后插入标签:
为了在web应用启动时通过DispatcherServlet装载静态文本,应该在web.xml中配置这个Servlet时设置load-on-startup属性:
DispatcherServlet
com.test.servlet.DispatcherServlet
5
在MessageTag的doEndTag方法中,首先从pageContext中读取包含静态文本的Properties对象:
public int doEndTag() throws JspException
{
try
{
Properties ps = (Properties) pageContext.getAttribute("ps",
PageContext.APPLICATION_SCOPE);
String message = (String) ps.get(key);
pageContext.getOut().print(message);
}
catch (Exception e)
{
throw new JspTagException(e.getMessage());
}
return EVAL_PAGE;
}
然后从Properties对象中读取key对应的静态文本,最后输出该文本。
最后,访问http://localhost:8080/test/hellowithtag2.jsp,输出hello。
java 客户化排序_第八部分_客户化JSP标签相关推荐
- java选择排序解释_选择排序
号内回复数据结构,获取整套算法视频 本文作者:skywang12345 欢迎点击下方阅读原文 选择排序介绍 选择排序(Selection sort)是一种简单直观的排序算法. 它的基本思想是:首先在未 ...
- java编写排序的代码_在Java 8之前,您编写了几行代码来对对象集合进行排序?...
java编写排序的代码 在Java 8之前,您编写了几行代码来对对象集合进行排序? Java 8您需要多少个? 您可以在Java 8中用一行完成. 让我们看看下面的Employee类. public ...
- java取出字符串中的后四位_[原]Java面试题-将字符串中数字提取出来排序后输出...
[Title][原]Java面试题-将字符串中数字提取出来排序后输出 [Date]2013-09-15 [Abstract]很简单的面试题,要求现场在纸上写出来. [Keywords]面试.Java. ...
- 20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结
20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结 结对伙伴 学号 :20172307 姓名 :黄宇瑭 伙伴第一周博客地址: http://www.cnblogs.com/ ...
- java编写桌球游戏素材小球图片_你学不好Java还是有原因的!拿走这套Java系统教程,自学必备...
很多同学都遇到过一种情况:就是无论自己怎么学Java,到头来发现学的都是皮毛,当真正去用python去做一个项目的时候,脑袋里面一片空白.完全不知道从何做起! 那是你没有系统的学过一次Java,现在的 ...
- java web主流框架整合开发 光盘_开发者突击:Java Web主流框架整合开发(第2版)(附CD光盘1张)...
序言 一.了解软件架构 (一)基本概念 (二)软件架构的历史 (三)软件架构的目标 二.J2EE开发模型分析 (一)一层架构模式 (二)两层架构模式Model 1 (三)三层架构模式Model 2 ( ...
- 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇
马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...
- JAVA入门_继承与重载_饲养员喂养动物
JAVA入门_继承与重载_饲养员喂养动物 实验要求 Tiger类 Feeder类 MainClass 运行结果 实验要求 本实验要求:本实验以饲养员喂养老虎为业务背景,体验"函数重载&quo ...
- Java视频教程(最适合Java初学者的经典入门视频)_讲 师:张孝祥
下载地址:http://www.itsoba.com/Article.asp?id=849 下载地址:http://www.itsoba.com/Article.asp?id=849 视频介绍: 本视 ...
最新文章
- Android 中文API (94) —— MediaController
- linux(ubuntu) 查看系统设备信息 命令
- MTK+Android编译
- 如何让div水平垂直居中
- C++教程之lambda表达式一
- Mongoose 中使用 populate 实现关联查询
- linux nfs spec,创建 NFS Ubuntu Linux 服务器卷 - Azure Kubernetes Service | Microsoft Docs
- 大数据技术周报第 009 期
- ebpf深入理解和应用介绍
- 计算机图形设计案例,9《计算机图形图像的设计的案例实训题.doc
- C#使用结构来传递多个参数
- $(document).ready()方法和window.onload()方法
- JavaScript自定义滚动条
- python编写txt阅读器程序_Python 制作简易小说阅读器
- fiddler 安装配置,连接手机,抓包QQ小程序
- STC单片机 Keil4安装, 第一个程序
- Java 杨辉三角形
- linux配置dhcp服务器authoritative参数作用
- 获取当前系统时间(取相对于系统时间的前一周时间)
- 简谈浅层拷贝和深层拷贝