SSH 常见权限设计四:如何得到<s:a action="url">kkk</s:a>里面的url
来源:互联网 发布:求购湖南快乐十分源码 编辑:程序博客网 时间:2024/04/30 13:47
一、如图:
二、修改原码:
修改doEndTag函数里的内容
/* * $Id: AnchorTag.java 768855 2009-04-27 02:09:35Z wesw $ * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */package org.apache.struts2.views.jsp.ui;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.jsp.JspException;import org.apache.struts2.components.Anchor;import org.apache.struts2.components.Component;import cn.oppo.oa.domain.User;import com.opensymphony.xwork2.util.ValueStack;/** * @see Anchor */public class AnchorTag extends AbstractClosingTag { private static final long serialVersionUID = -1034616578492431113L; protected String href; protected String includeParams; protected String scheme; protected String action; protected String namespace; protected String method; protected String encode; protected String includeContext; protected String escapeAmp; protected String portletMode; protected String windowState; protected String portletUrlType; protected String anchor; protected String forceAddSchemeHostAndPort; @Override public int doEndTag() throws JspException { // 当前用户 User user = (User) pageContext.getSession().getAttribute("user"); // 当前的URL,如果有参数就要去掉后面的参数字符串 String privilegeUrl = action; int pos = privilegeUrl.indexOf("?"); if (pos > -1) { privilegeUrl = privilegeUrl.substring(0, pos); } if (user.hasPrivilegeByUrl(privilegeUrl)) { return super.doEndTag(); // 如果有权限,就正常的生成与输出<a>标签 } else { return EVAL_PAGE; // 如果没有权限,就不显示当前<a>标签,只是继续执行页面中后面的代码 } } public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) { return new Anchor(stack, req, res); } protected void populateParams() { super.populateParams(); Anchor tag = (Anchor) component; tag.setHref(href); tag.setIncludeParams(includeParams); tag.setScheme(scheme); tag.setValue(value); tag.setMethod(method); tag.setNamespace(namespace); tag.setAction(action); tag.setPortletMode(portletMode); tag.setPortletUrlType(portletUrlType); tag.setWindowState(windowState); tag.setAnchor(anchor); if (encode != null) { tag.setEncode(Boolean.valueOf(encode).booleanValue()); } if (includeContext != null) { tag.setIncludeContext(Boolean.valueOf(includeContext).booleanValue()); } if (escapeAmp != null) { tag.setEscapeAmp(Boolean.valueOf(escapeAmp).booleanValue()); } if (forceAddSchemeHostAndPort != null) { tag.setForceAddSchemeHostAndPort(Boolean.valueOf(forceAddSchemeHostAndPort).booleanValue()); } } public void setHref(String href) { this.href = href; } public void setEncode(String encode) { this.encode = encode; } public void setIncludeContext(String includeContext) { this.includeContext = includeContext; } public void setEscapeAmp(String escapeAmp) { this.escapeAmp = escapeAmp; } public void setIncludeParams(String name) { includeParams = name; } public void setAction(String action) { this.action = action; } public void setNamespace(String namespace) { this.namespace = namespace; } public void setMethod(String method) { this.method = method; } public void setScheme(String scheme) { this.scheme = scheme; } public void setValue(String value) { this.value = value; } public void setPortletMode(String portletMode) { this.portletMode = portletMode; } public void setPortletUrlType(String portletUrlType) { this.portletUrlType = portletUrlType; } public void setWindowState(String windowState) { this.windowState = windowState; } public void setAnchor(String anchor) { this.anchor = anchor; } public void setForceAddSchemeHostAndPort(String forceAddSchemeHostAndPort) { this.forceAddSchemeHostAndPort = forceAddSchemeHostAndPort; }}
0 0
- SSH 常见权限设计四:如何得到<s:a action="url">kkk</s:a>里面的url
- <a href="<s:url action="navDel" ><s:param name="id" value="pid"/></s:url>"> 删除 </a>
- Changing a remote's URL
- Changing a remote's URL
- struts2 s:url和s:a
- Struts2中的链接标签 <s:url>和<s:a>
- Struts2中的链接标签 <s:url>和<s:a>
- 【引用】Struts2中的链接标签 <s:url>和<s:a>
- What's the difference between a URI and a URL?
- struts2 s标签url和a出现乱码情况 解决办法
- Struts2 tag:<s:action>(保持项目的url)
- s:url
- Linux的s、t、i、a权限
- Note on <Zend Framework - A Beginner's Guide> - 01:Apache的URL重寫,ZF項目結構
- dlitech's m3 project url, of course it's a temporary address
- <s:url>标签的使用
- a[s++] = a[e]
- Linux下的s、t、i、a权限
- 100本软件开发最佳书籍排行榜
- JSON的运用
- 学习日志第7篇
- 把字符串转换成Json格式
- lavavel ajax分页
- SSH 常见权限设计四:如何得到<s:a action="url">kkk</s:a>里面的url
- Oracle进程中的 LOCAL=NO 和 LOCAL=YES
- [DP 训练] Longest Run on a Snowboard, UVa 10285
- Leetcode 271. Encode and Decode Strings
- BGRABitmap图像操作的其余内容链接
- Opencv2.4.9源码分析——Neural Networks
- 关闭数据库时SHUTDOWN: waiting for active calls to complete.处理
- 图
- 初学ACM之路(训练大纲)