javascript
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标签的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ida 字符串查找_IDA 搜索中文字符
- 下一篇: mybatis中resultType取出