高分,在线等,这个struts2的拦截器如何做?

sunzhyng 2009-06-08 10:10:58
struts2的拦截器功能比较强大,但最近遇到一个困惑的问题,研究了好长时间仍没有方法。

在struts2中一个form有多个action时,可以很简单实现:
<s:form action="submit" namespace="/demo">
<s:textfield name="msg" label="输入内容" />
<s:submit name="save" value="保存" align="left" method="save" />
<s:submit name="print" value="打印" align="left" method="print" />
</s:form>

但是我想做一个统一的权限过滤器,也就是说save和print是有权限的才能执行,我现在无法在demo.action得到method,在哪个过程里做呢?请大虾给予帮助!

高分,在线等,问题解决立即加分!
...全文
61 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
oxcow 2009-06-08
  • 打赏
  • 举报
回复
再xwork.xml声明一个针对这两个方法的拦截器
<interceptors>
<interceptor name="inter1"
class="类名" />
</interceptors>

然后在执行save或是print的action中调用就行了

<action name="save" class="org.apache.struts2.showcase.token.TokenAction" method="save">
<interceptor-ref name="inter1"/>
<result name="input">example2.jsp</result>
</action>
laorer 2009-06-08
  • 打赏
  • 举报
回复
那就写个 filter 吧, 在里面判断相应的权限,不满足就返回原来的页面,并弹出提示,
满足就继续
sunzhyng 2009-06-08
  • 打赏
  • 举报
回复
等待ing
yyandlh 2009-06-08
  • 打赏
  • 举报
回复
学习一下
quxiuer 2009-06-08
  • 打赏
  • 举报
回复
直接在方法里判断是否有权限不就行了
ligoou 2009-06-08
  • 打赏
  • 举报
回复
过滤器里验证用户角色!
角色不对则不执行action!
想法
money8899 2009-06-08
  • 打赏
  • 举报
回复
写个过滤器
晓筱时代 2009-06-08
  • 打赏
  • 举报
回复
系统里可以建几个表,menu, role, operation, operation_url, role_menu,role_operation
menu表里存放项目的菜单部分(或者说是导航)
operation存放某某模块的操作权限
operation_url存放某某模块的具体的url
role,role_menu,role_operation分别表示角色, 某某角色可以看到某某菜单,某某角色具有哪些模块的操作权限

在用户登录的时候,可以根据用户id取出用户角色, 再根据用户角色获取当前用户可以看到的菜单,以及可以操作的url, 把这些信息全部保存到session中

再写一个interceptor,每当有请求的时候,判断当前url是否在session中.
ok
Hyman行之 2009-06-08
  • 打赏
  • 举报
回复
自定义一个拦截器应该可以实现。可参考下面这个看一下。
http://www.blogjava.net/hwpok/archive/2008/10/28/237015.html
sprite26 2009-06-08
  • 打赏
  • 举报
回复
拦截器这个没做过,换种思路看行不
楼主可以去写个标签,专门判断权限
每次把要根据权限才能使用的按钮都加上这个标签,他有权限,这个按钮就显示
没有权限就不能显示
我这个是参考acegi的权限配置思路
sunzhyng 2009-06-08
  • 打赏
  • 举报
回复
因为业务要求比较严格,只是表现的地方不显示有点危险。
另外我觉得js或用隐藏域的方法也不是很好
laorer 2009-06-08
  • 打赏
  • 举报
回复
一个思路,可以考虑在表现的时候,判断权限,然后再来显示 save 和 print 按钮

这仅是针对你这个页面的
valen_jia 2009-06-08
  • 打赏
  • 举报
回复
写个js方法,onsubmit,弄个隐藏域,把method属性放进去,在action里拿
sunzhyng 2009-06-08
  • 打赏
  • 举报
回复
呵呵,解决问题,搞定了可以再加分
wanghao1987 2009-06-08
  • 打赏
  • 举报
回复
hoho,好多分,给我吧
ndcs_dhf2008 2009-06-08
  • 打赏
  • 举报
回复
来晚了,没分了.
leisure55 2009-06-08
  • 打赏
  • 举报
回复
1.action实现preparable接口
2.在prepare方法里面判断用户调用哪个方法,是否有权限执行。
sunzhyng 2009-06-08
  • 打赏
  • 举报
回复
搞定,结贴
西瓜 2009-06-08
  • 打赏
  • 举报
回复
就在页面写个判断语句
struts1 里面的我知道是
<c:if>标签 判断一下 如果用户有权限 就显示这个按钮
如果没有 权限就 不显示

struts2 里面应该也有这样的标签
struts2 不是很熟悉,基本没有用过
我想应该和struts1 差别不太大
sun_zhicheng 2009-06-08
  • 打赏
  • 举报
回复
这方法多啊 随便写个js 根据不同的提交类型,在request里面传不同的参数加以区分
【资源说明】 该项目是个人毕设项目源码,评审分达到95分,都经过严格调试,确保可以运行!放心下载使用。 该项目资源主要针对计算机、自动化等相关专业的学生或从业者下载使用,也可作为期末课程设计、课程大作业、毕业设计等。 具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现类似其他功能。 基于HTML5_BootStrap_SSM图书查询借阅网站设计可升级SpringBoot毕业源码案例设计 ## 程序开发环境:myEclipse/Eclipse/Idea都可以 + mysql数据库 ## 前台技术框架: Bootstrap 后台架构框架: SSM 本系统前台采用了BootStrap框架,它是一款最受欢迎的前端html5设计框架,采用它开发出来的网站可以同时在移动端和pc端获得很好的显示效果,用户的体验度很高! ## 下面是系统用到的实体信息: 图书类型: 图书类别,类别名称,可借阅天数 图书: 图书条形码,图书名称,图书所在类别,图书价格,库存,出版日期,出版社,图书图片,图书简介 读者类型: 读者类型编号,读者类型,可借阅数目 读者: 读者编号,读者类型,姓名,性别,读者生日,联系电话,联系Email,联系qq,读者地址,读者头像 借阅信息: 借阅编号,图书对象,读者对象,借阅时间,归还时间 ## 后端技术要点: 1 此系统采用了目前最流行的ssm框架,其中的spingMVC框架相对于struts2框架更灵活,更安全。 2 本项目springMVC框架采用了注解映射器,使用了RESTful风格的url对系统发起http请求,开发更灵活。 3 同时使用了了hibernate提供的校验框架,对客户端数据进行校验! 4 Mybati数据库DAO层采用的是Mapper代理开发方法,输入映射采用的是POJO包装类型实现,输出映射采用了resultMap类型,实现了数据库多对一映射。 5 spring容器内部使用拦截器,以Spring AOP的方式实现事务控制管理。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧