18910140161

Java-如何检查@requestparam是否为空-堆栈溢出

顺晟科技

2022-10-19 13:38:36

307

我想知道如何检查RequestParams以查看它们是否为空,以便我可以转发到另一个html页面,现在我只是通过检查每个参数是否为空来解决这个问题。问题是我想转发到另一个页面,如果用户试图提交一个令人信服的空表单,如果他们这样做,我的程序将崩溃。它将崩溃,因为程序试图将int Price转换为字符串,即以空形式提交的字符串。我知道我可以让Int Price成为一个字符串,但我想知道是否还有另一个灵魂。

@Controller
public class HomeController {
    
    @Autowired
    private GlassesList glassesList;

    
    @GetMapping("/")
    public String goHome(Model model) {
        return "index";
    }
    
    @GetMapping("/addGlasses")
    public String addSunglasses(Model model) {
        return "addGlasses";
    }
    
    
    @GetMapping("/searchGlasses")
    public String searchSunglasses() {
        return "searchGlasses";
    }
    
    @GetMapping("/displayGlasses")
    public String displaySunglasses() {
        return "displayGlasses";
    }
    @PostMapping("/formPost")public String processForm (
            Model model,
            @RequestParam String productName,
            @RequestParam String brandName,
            @RequestParam String frameType,
            @RequestParam String color,
            @RequestParam String size,
            @RequestParam String lensType,
            @RequestParam int price
            ) {
if (productName.equals("") && brandName.equals("") && frameType.equals("") && color.equals("") && size.equals("") && lensType.equals("") && price == 0) {
            
            return "displayGlasses";
        }
        else {
        Glasses glasses = new Glasses(productName, brandName,frameType,
       color, size, lensType, price);
        glassesList.getGlassesList().add(glasses); 
        model.addAttribute("glassesList", glassesList);
        System.out.println(model.getAttribute(lensType));
        System.out.print(glassesList.getGlassesList());
        
        
        return "addGlasses";
        
        
        
    }
}


顺晟科技:

不必处理太多请求参数,您可以使用RequestBody并在该请求中发送这些参数,如下所示: 定义一个表示所有请求参数的类:

@Controller
public class HomeController {
    
    @Autowired
    private GlassesList glassesList;

    
    @GetMapping("/")
    public String goHome(Model model) {
        return "index";
    }
    
    @GetMapping("/addGlasses")
    public String addSunglasses(Model model) {
        return "addGlasses";
    }
    
    
    @GetMapping("/searchGlasses")
    public String searchSunglasses() {
        return "searchGlasses";
    }
    
    @GetMapping("/displayGlasses")
    public String displaySunglasses() {
        return "displayGlasses";
    }
    @PostMapping("/formPost")public String processForm (
            Model model,
            @RequestParam String productName,
            @RequestParam String brandName,
            @RequestParam String frameType,
            @RequestParam String color,
            @RequestParam String size,
            @RequestParam String lensType,
            @RequestParam int price
            ) {
if (productName.equals("") && brandName.equals("") && frameType.equals("") && color.equals("") && size.equals("") && lensType.equals("") && price == 0) {
            
            return "displayGlasses";
        }
        else {
        Glasses glasses = new Glasses(productName, brandName,frameType,
       color, size, lensType, price);
        glassesList.getGlassesList().add(glasses); 
        model.addAttribute("glassesList", glassesList);
        System.out.println(model.getAttribute(lensType));
        System.out.print(glassesList.getGlassesList());
        
        
        return "addGlasses";
        
        
        
    }
}

现在,在您的方法中使用它并绑定错误:

@Controller
public class HomeController {
    
    @Autowired
    private GlassesList glassesList;

    
    @GetMapping("/")
    public String goHome(Model model) {
        return "index";
    }
    
    @GetMapping("/addGlasses")
    public String addSunglasses(Model model) {
        return "addGlasses";
    }
    
    
    @GetMapping("/searchGlasses")
    public String searchSunglasses() {
        return "searchGlasses";
    }
    
    @GetMapping("/displayGlasses")
    public String displaySunglasses() {
        return "displayGlasses";
    }
    @PostMapping("/formPost")public String processForm (
            Model model,
            @RequestParam String productName,
            @RequestParam String brandName,
            @RequestParam String frameType,
            @RequestParam String color,
            @RequestParam String size,
            @RequestParam String lensType,
            @RequestParam int price
            ) {
if (productName.equals("") && brandName.equals("") && frameType.equals("") && color.equals("") && size.equals("") && lensType.equals("") && price == 0) {
            
            return "displayGlasses";
        }
        else {
        Glasses glasses = new Glasses(productName, brandName,frameType,
       color, size, lensType, price);
        glassesList.getGlassesList().add(glasses); 
        model.addAttribute("glassesList", glassesList);
        System.out.println(model.getAttribute(lensType));
        System.out.print(glassesList.getGlassesList());
        
        
        return "addGlasses";
        
        
        
    }
}

关于注释,请参阅此处:Bean验证中@Notnull、@Notempty和@Notblank约束的区别

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航