我是靠谱客的博主 危机小懒猪,最近开发中收集的这篇文章主要介绍java 客户化排序_第八部分_客户化JSP标签,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

EL语言(减少JSP页面中的Java代码)

2a68327a4397ea49e3d1525ade303047.png

String password = request.getParameter("password");

%>

username:

password:

username: ${param.username }

password: ${param.password }

429be66e6456b0e32f4334f1cf36c95c.png

属性范围->在EL中的名称

Page->pageScope;Request->requestScope;Session->sessionScope;Application->applicationScope.

b4d98d2f24bf2b2e7b20f1081770691b.png

此外,启动tomcat服务器,在浏览器中访问localhost:8080/examples,选择JSP Examples,其中给出了若干实例,也可以进行相关的学习。

188648b13f016be47da318cc6e1a7287.png

首先创建标签处理类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。

3c0bc4482274a5f4e0095fd191dfc1b0.png

最后

以上就是危机小懒猪为你收集整理的java 客户化排序_第八部分_客户化JSP标签的全部内容,希望文章能够帮你解决java 客户化排序_第八部分_客户化JSP标签所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部