- 相關(guān)推薦
Java自定義簡單標(biāo)簽實(shí)例
引導(dǎo)語:當(dāng)jsp的內(nèi)置標(biāo)簽和jstl標(biāo)簽庫內(nèi)的標(biāo)簽都滿足不了需求,這時(shí)候就需要開發(fā)者自定義標(biāo)簽。以下是百分網(wǎng)小編分享給大家的Java自定義簡單標(biāo)簽實(shí)例,歡迎閱讀!
下面將以權(quán)限的控制為例自定義一個(gè)標(biāo)簽:
一、標(biāo)簽類型
步驟:
1.自定義一個(gè)類PerssionTag 繼承SimpleTagSupport(自定義標(biāo)簽一般都會(huì)繼承這個(gè)類)
package cn.com.liveuc.privilege.tag;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import cn.com.liveuc.privilege.model.Privilege;
import cn.com.liveuc.privilege.model.Resource;
import cn.com.liveuc.privilege.model.Role;
import cn.com.liveuc.privilege.model.User;
/**
*
* @說明 自定義標(biāo)簽
*/
public class PerssionTag extends SimpleTagSupport {
//自定義標(biāo)簽屬性,用于標(biāo)簽傳入?yún)?shù)
private String uri;
//接收標(biāo)簽傳入的參數(shù)
public void setUri(String uri) {
this.uri = uri;
}
@Override
public void doTag() throws JspException, IOException {
//獲取用戶登陸后保存的Session
PageContext page = (PageContext) this.getJspContext();
User user = (User) page.getSession().getAttribute("login");
//如果用戶登陸
if(user != null) {
//用戶登陸判斷用戶權(quán)限
List list = new ArrayList();
//獲取用戶的角色
Set role = user.getRole();
for(Role r:role) {
//獲取角色對(duì)應(yīng)的權(quán)限
Set privilege = r.getPrivilege();
for(Privilege p:privilege) {
//獲取權(quán)限對(duì)應(yīng)的資源
Set res = p.getResource();
for(Resource re:res) {
list.add(re.getUri());
}
}
}
for(String ur:list) {
//判斷用戶的權(quán)限
if(ur.equals(uri)) {
this.getJspBody().invoke(null); //有權(quán)限輸出標(biāo)簽體內(nèi)容
}
}
}
}
}
2.在WEB-INF下創(chuàng)建tld文件描述標(biāo)簽。
復(fù)制代碼 代碼如下:
version="2.0"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd">
the Apache Struts framework includes a library of custom tags.
The tags interact with the framework's validation and internationalization features;
to ensure that input is correct and output is localized.
The Struts Tags can be used with JSP FreeMarker or Velocity."]]>
"Struts Tags"
2.2.3
s
/wxt
per
cn.com.liveuc.privilege.tag.PerssionTag
scriptless
uri
true
true
3.運(yùn)用標(biāo)簽
在Jsp頁面導(dǎo)入標(biāo)簽:
%@taglib prefix="wxt" uri="/wxt" %
運(yùn)用標(biāo)簽:
用戶管理
用戶權(quán)限包含uri資源的將會(huì)輸出標(biāo)簽內(nèi)容。
【Java自定義簡單標(biāo)簽實(shí)例】相關(guān)文章:
java調(diào)用c函數(shù)的實(shí)例09-16
Java自定義范型的應(yīng)用技巧10-16
java讀取解析xml文件實(shí)例08-05
Java的Struts框架中標(biāo)簽的使用方法07-29
java中通用的線程池實(shí)例代碼08-27