action错误判断

本文介绍了一段Struts2框架中实现登录验证的代码片段。主要展示了如何使用ActionMessages来存储错误信息,并通过ActionMessage设置具体错误类型。此外还讲解了如何将错误信息保存到请求对象中并返回特定视图。
 

ACTION中,如果要判断出错的话,一般代码如下:如凳录不成功!

 

ActionMessages errors= new ActionMessages();

if(cus==null||!cus.getPassword().equals(password)){//登录不成功

ActionMessage error=new ActionMessage("error.login");//"error.login"是在资源文件中定义过的

errors.add("login",error);// "login"是给错误起个标志,以区别其他的错误。

this.saveErrors(request, errors);

return mapping.getInputForward();

          

}

 

 

 

### 如何在Spring Boot和Spring Web中实现判断逻辑的Action以及重定向功能 #### 判断逻辑的Action实现 在Spring Web应用中,可以通过控制器中的方法来处理不同的业务逻辑并返回相应的视图名称或执行特定的操作。下面是一个基于条件判断的例子: ```java package com.example.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller public class DecisionController { @GetMapping("/decision") public String decision(@RequestParam(name="condition", required=false, defaultValue="false") boolean condition, Model model) { if (condition) { model.addAttribute("message", "Condition is true"); return "success"; // 返回名为 'success' 的视图 } else { model.addAttribute("message", "Condition is false"); return "failure"; // 返回名为 'failure' 的视图 } } } ``` 此代码片段展示了如何通过`@RequestParam`获取请求参数,并根据其值决定返回哪个视图[^4]。 #### 重定向功能的Action实现 对于需要重定向的情况,在Spring框架下可以简单地使用`redirect:`前缀指定目标URL。以下是具体的例子: ```java package com.example.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller public class RedirectController { @GetMapping("/redirect-action") public String redirectExample(@RequestParam(name="target", required=true) String target) { if ("home".equals(target)) { return "redirect:/home"; } else if ("about".equals(target)) { return "redirect:/about"; } else { return "error"; // 如果没有匹配的目标,则显示错误页 } } @GetMapping("/home") public String home() { return "homePage"; // 显示主页视图 } @GetMapping("/about") public String about() { return "aboutPage"; // 显示关于页面视图 } } ``` 这里演示了依据传入的不同参数值来进行不同页面间的跳转操作[^5]。 #### 结合JPA进行数据查询作为判断依据 当涉及到数据库交互时,通常会利用Spring Data JPA简化CRUD操作。假设有一个实体类`User`及其对应的Repository接口如下所示: ```java // User Entity Class @Entity @Table(name = "users") public class User { @Id private Long id; private String username; } // UserRepository Interface extending JpaRepository public interface UserRepository extends JpaRepository<User, Long> {} ``` 那么可以在控制层调用该repository的方法来做进一步决策: ```java @Autowired private UserRepository userRepository; @GetMapping("/check-user-exists/{userId}") public String checkUserExists(@PathVariable Long userId){ Optional<User> userOptional = userRepository.findById(userId); if(userOptional.isPresent()){ return "userFound"; }else{ return "userNotFound"; } } ``` 这段代码说明了怎样借助于JPA Repository完成存在性的验证工作流程[^6]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值