功能 :判斷目前使用者是否有許可權訪問當頁面
思路:讀取目前使用者的許可權(在登陸驗證是設定的)
和標籤在jsp頁面取到的值進行比較,不匹配時跳轉到指定頁面
總結:標籤類一般存放在web-inf/lib
xxxx.tld 配置 標籤類的參數定義和指定類名
web-inf.xml 指定xxxx.tld的位置和定義名字
<mytag:CheckPower power="manager" gotoPage="login.jsp"/>
錯誤總結:寫標籤類的時候get/set方法漏了 ,報錯。
寫jsp頁面時ctrl c ctrl v時 uri沒改,頁面不認。
下步目標:標籤類進行驗證時能將驗證錯誤資訊寫入session或者request
然後能通過jsp頁面讀取到該錯誤資訊
===================CheckPower.class(標籤類程式)==================================
package com.mytld;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
public class CheckPower extends TagSupport {
private String power;
private String gotoPage;
public int doEndTag() throws JspException {
String userPower = (String) pageContext.getSession().getAttribute(
"power");
try {
if (!power.equals(userPower)) {
pageContext.forward(gotoPage);
return super.EVAL_PAGE;
}
} catch (Exception e) {
e.printStackTrace();
}
return super.EVAL_PAGE;
// return super.SKIP_BODY ;
// return super.SKIP_PAGE;
}
public String getGotoPage() {
return gotoPage;
}
public void setGotoPage(String gotoPage) {
this.gotoPage = gotoPage;
}
public String getPower() {
return power;
}
public void setPower(String power) {
this.power = power;
}
}
================manager.jsp==================================
<%@ page pageEncoding="GBK" contentType="text/html; charset=GBK" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<%@ taglib uri="mytag" prefix="mytag" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<title>manager</title>
</head>
<body>
<center>manager</center>
<mytag:CheckPower power="manager" gotoPage="login.jsp"/>
<logic:present name="LoginBean" scope="request">
<bean:write name="LoginBean" property="passWord"/>
</logic:present>
</body>
</html>
================mytag.tld===================
<?xml version="1.0" encoding="Shift_JIS"?>
<taglib>
<tlibversion>1.2</tlibversion>
<jspversion>1.1</jspversion>
<shortname>mytag</shortname>
<tag>
<name>CheckPower</name>
<tagclass>com.mytld.CheckPower</tagclass>
<attribute>
<name>power</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>gotoPage</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
==================web.xml(片斷)===========================
<taglib>
<taglib-uri>mytag</taglib-uri>
<taglib-location>/WEB-INF/mytag.tld</taglib-location>
</taglib>