struts2用法

struts2的一些用法

  1. action搜索顺序
    http://localhost:8080/struts/path1/path2/path3/xxx.action
    当你在struts2.xml文件的namespace是/的时候然后你输入随便输入路径你能正确访问你要寻找的视图层吗?
    答案是能的。
    为什么?
    存在的情况
    因为第一步他会判断package是否存在,如path/path2/path3
    如果存在:判断action是否存在
    如果不存在:就会去namespace的package去寻找action,如果不存在就报错。
    不存在的情况:
    检查上一级路径的packa是否存在(直到默认namespace),重复第一步
    2.动态调用方法
    1.指定method属性
    创建helloWorldAction类:
    在这里插入图片描述
    配置struts.xml method属性指定helloWorldAction类的方法
    result返回结果集 默认是success.jsp.当然result里面有属性name也就是你返回的结果集的视图
    在这里插入图片描述
    创建视图层success.jsp
    在这里插入图片描述

2.感叹号方式(官方不推荐)
创建HelloWorldAction类
在这里插入图片描述
配置struts.xml文件 在这需要注意的是需要配置一个常量
struts.enable.DynamicMethodInvocation动态调用方法
否则不能生效
在这里插入图片描述
创建视图success.jsp
在这里插入图片描述
访问路径例如:http://localhost:8080:项目名/namespace/helloworld!add.ation
注意!add 其实是你action类的方法名 action是后缀
3.通配符
创建action类
在这里插入图片描述
配置struts.xml文件 method{1}指的是你的action类里面的所有方法 name=“helloworld_其中代表的是方法”
在这里插入图片描述
创建视图
在这里插入图片描述
访问路径访问路径例如:http://localhost:8080:项目名/namespace/helloworld_add.ation
3. 默认action
解决界面报404错误,给用户一个良好的体验界面报404错误,给用户一个良好的体验。
在struts.xml配置一下就ok了
在这里插入图片描述
默认的action的name与action的name一致,否则没有效果!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Struts2使用管理员权限增删改查可以通过以下步骤实现: 1. 定义权限控制 在Struts2中,可以使用拦截器来实现权限控制,定义一个拦截器来检查当前用户是否有管理员权限。例如,可以定义一个名为“adminInterceptor”的拦截器: ``` public class AdminInterceptor extends AbstractInterceptor { @Override public String intercept(ActionInvocation invocation) throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession(); User user = (User) session.getAttribute("user"); if (user == null || !user.isAdmin()) { return "noAdmin"; } return invocation.invoke(); } } ``` 在以上拦截器中,我们检查当前用户是否已登录,并且是否具有管理员权限。如果用户未登录或不是管理员,则返回“noAdmin”字符串。 2. 配置拦截器 在Struts2中,可以使用“interceptor-ref”元素来指定要使用的拦截器。例如,我们可以在Struts2配置文件中添加以下内容: ``` <interceptors> <interceptor name="adminInterceptor" class="com.example.AdminInterceptor" /> <interceptor-stack name="adminStack"> <interceptor-ref name="adminInterceptor" /> <interceptor-ref name="defaultStack" /> </interceptor-stack> </interceptors> ``` 在以上配置中,我们定义了一个名为“adminStack”的拦截器堆栈,其中包含了我们定义的“adminInterceptor”拦截器和默认拦截器堆栈。使用“adminStack”来拦截需要管理员权限的Action。 3. 编写Action 在Struts2中,可以通过定义Action来处理请求。以下是一个简单的Action示例,用于管理用户: ``` public class UserAction extends ActionSupport { private List<User> users; public String list() { users = userService.listUsers(); return SUCCESS; } @Override public String execute() throws Exception { return list(); } public String add() { userService.addUser(user); return SUCCESS; } public String edit() { user = userService.getUser(id); return SUCCESS; } public String update() { userService.updateUser(user); return SUCCESS; } public String delete() { userService.deleteUser(id); return SUCCESS; } // getters and setters } ``` 在以上示例中,我们定义了五个方法来处理用户管理操作: - list:列出所有用户 - add:添加新用户 - edit:编辑用户信息 - update:更新用户信息 - delete:删除用户 在每个方法中,我们都需要检查当前用户是否具有管理员权限。如果用户未登录或不是管理员,则返回“noAdmin”字符串。 4. 配置Action 在Struts2中,可以使用“result”元素来指定Action执行后的结果。例如,我们可以在Struts2配置文件中添加以下内容: ``` <action name="user" class="com.example.UserAction" method="list"> <result name="success">/user/list.jsp</result> <interceptor-ref name="adminStack" /> </action> <action name="userAdd" class="com.example.UserAction" method="add"> <result name="success" type="redirectAction">user</result> <interceptor-ref name="adminStack" /> </action> <action name="userEdit" class="com.example.UserAction" method="edit"> <result name="success">/user/edit.jsp</result> <interceptor-ref name="adminStack" /> </action> <action name="userUpdate" class="com.example.UserAction" method="update"> <result name="success" type="redirectAction">user</result> <interceptor-ref name="adminStack" /> </action> <action name="userDelete" class="com.example.UserAction" method="delete"> <result name="success" type="redirectAction">user</result> <interceptor-ref name="adminStack" /> </action> ``` 在以上配置中,我们定义了五个Action,分别对应用户管理操作。在每个Action中,我们都指定了要使用的拦截器堆栈“adminStack”,以检查当前用户是否具有管理员权限。同时,我们还指定了Action执行后的结果,例如展示用户列表、跳转到添加用户页面等。 通过以上步骤,我们就可以使用管理员权限增删改查用户信息了。当用户未登录或不是管理员时,系统会直接返回“noAdmin”页面,避免未授权访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值