这是我的struts1中的代码
public class ValidateSessionTag extends BodyTagSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
public int doEndTag() throws JspException {
boolean valid = false;
HttpSession session = pageContext.getSession();
if ((session != null) && (session.getAttribute(Constant.SESSION_USER_KEY) != null))
valid = true;
if (valid)
return (EVAL_PAGE);
else {
try {
ServletRequest request=pageContext.getRequest();
ServletResponse response=pageContext.getResponse();
RequestDispatcher requestDispatcher=request.getRequestDispatcher("/index.jsp");
requestDispatcher.forward(request, response);
} catch (Exception e) {
throw new JspException(e.toString());
}
return (SKIP_PAGE);
}
}
}
在struts2中使的时候报告一个错误load tag handler class "com.hxq.taglibs.ValidateSessionTag" for tag "hxq:validateSession"
我在web-inf下建立了hxq.tld,并且已经引用。
struts2 是不是使用不了 jsp自定义标签啊。
请问哥姐,我该如何在struts2中实现 这个功能啊。
[b]问题补充:[/b]
我这个代码是做session验证的。
做session验证 用拦截器 我倒是会用,也会写。
我还有一代码是做权限验证的。
是在jsp显示的时候 验证一下是否有权限,如果没有权限就不在jsp上显示。
public class ValidatePermissionTag extends BodyTagSupport {
private static final long serialVersionUID = 1L;
private String permission;//设定的访问权限
private String include="3";//(1)是包含该属性就可以了,(2)是除了最后一项匹配以外都要匹配,(3)必须完全匹配
private String flag="true";//是否匹配显示还是不匹配显示
public void setPermission(String permission){
this.permission=permission;
}
public void setInclude(String include){
this.include=include;
}
public void setFlag(String flag){
this.flag=flag;
}
public int doStartTag() throws JspException {
int status=SKIP_BODY;
HttpSession session = pageContext.getSession();
if ((session != null) && (session.getAttribute(Constant.SESSION_USER_PERMISSION) != null)){
ArrayList list=(ArrayList)session.getAttribute(Constant.SESSION_USER_PERMISSION);
Iterator iterator=list.iterator();
while(iterator.hasNext()){
String ops=iterator.next().toString();//实际拥有的权限
if("true".equals(flag)){
if("1".equals(include)){
if(ops.indexOf(permission)>0){
return EVAL_BODY_INCLUDE;
}
}else if("2".equals(include)){
if(ops.startsWith(permission)){
return EVAL_BODY_INCLUDE;
}
}else{
if(ops.equals(permission)){
return EVAL_BODY_INCLUDE;
}
}
}else{
if("1".equals(include)){
if(ops.indexOf(permission)>0){
return SKIP_BODY;
}
}else if("2".equals(include)){
if(ops.startsWith(permission)){
return SKIP_BODY;
}
}else{
if(ops.equals(permission)){
return SKIP_BODY;
}
}
status=EVAL_BODY_INCLUDE;
}
}
}
return status;
}
}
我的这两段代码在另外一struts1的工程中 都是好使的。
我现在正在学习struts2,并且 想把原来struts1的工程用struts2重新实现。