url中的SpringMVC参数问题

时间:2013-05-02 22:09:57

标签: java spring url spring-mvc parameters

我有一个页面,我输入参数来查询记录列表。 单击查询按钮时,如果单击列表中的项目,则会返回到显示记录的第一页。

当我点击另一个按钮' new '清除页面并返回一个空页面时,网址中有一个参数,它设置页面上项目的值。该项目是网址中有犯罪记录。

如何摆脱这种情况我想要返回一个空页?

方案

  1. 我在一个包含以下网址:http://adomain/crimeTrack/crime_registration.htm

  2. 的网页上
  3. 我点击查询对另一个显示记录列表的网址执行POST:http://adomain/crimeTrack/crimeList.htm

  4. 在上面2中的上一页中,然后选择一条执行POST的记录,并将我带到以下网址:http://adomain/crimeTrack/getCrime/6.htm - where 6 is the crimeRecNo.

  5. 我现在在上面的网址上,然后点击“新建”按钮获取一个空白表单,上面的网址为1。当我点击新的时,在

  6. 下的代码示例4中对控制器方法进行了POST

    此方法重定向到映射到GET方法的url,但最终的url如下所示:http://adomain/crimeTrack/%20crime_registration.htm?crimeRecNo=6

    值6保留在crimeRecNo字段中,并且不会清除整个表单。

    Under是控制器方法:

    1。初始页面请求

    @RequestMapping(value = "crime_registration.htm", method = RequestMethod.GET)
    public ModelAndView loadPage(HttpServletRequest request,HttpServletResponse response, @ModelAttribute Crime crime,BindingResult result, ModelMap m, Model model, SessionStatus status,HttpSession session) throws Exception {
    
                try {
    
    
                    logger.debug("In Crime Registration Controller");
    
                    myCriminalList.put("dbcriminalList",
                            this.citizenManager.getListOfCriminals());
                    ...................
    
                    session.setAttribute("page", 0);
    
    
                    return new ModelAndView("crime_registration");
    
                } catch (Exception e) {
    
                    logger.debug("Exception In CrimeRegistration Controller : "
                            + e.getMessage());
    
                    return new ModelAndView("crime_registration");
    
                }
    
            }
    

    2。查询物品清单

    @RequestMapping(value = "crimeList.htm", method = RequestMethod.POST)
    public ModelAndView handelCrimeList(@ModelAttribute Crime crime,
            BindingResult result, ModelMap m, Model model) throws Exception {
    
        if (crimeManager.getCrimesList(crime).size() <= 0) {
    
            model.addAttribute("dbcriminals", myCriminalList);
            ........
    
            model.addAttribute("crimeTypeList", crimeTypeManager.getCrimeTypeList(crime.getOffenceCatId()));
    
            model.addAttribute("icon", "ui-icon ui-icon-circle-close");
            model.addAttribute("results","Error: Query Caused No Records To Be Retrieved!");
    
            return new ModelAndView("crime_registration");
        }
    
        model.addAttribute("crimes", crimeManager.getCrimesList(crime));
    
        return new ModelAndView("crimeList");
    
    }
    

    第3。申请单项/从列表中选择项目

    @RequestMapping(value = "getCrime/{crimeRecNo}.htm", method = RequestMethod.POST)
    public ModelAndView getCrime(@PathVariable Integer crimeRecNo,
            @ModelAttribute Crime crime, BindingResult result, ModelMap m,
            Model model, HttpServletRequest request,
            HttpServletResponse response, HttpSession session) throws Exception {
    
        try {
            model.addAttribute("crime", crimeManager.getCrimeRecord(crimeRecNo));
            session.setAttribute("crimeRecNo", crimeRecNo);
            //model.addAttribute("victimList", citizenManager.getVictimListByCrimeRecNo(crimeRecNo));
    
        } catch (Exception e) {
    
            logger.error("Exception in CitizenRegistrationController - ModelAndView getCitizen "
                    + e);
        }
    
        int crimeCatId = crimeManager.getCrimeRecord(crimeRecNo).getOffenceCatId();
        logger.info("crime category number is : "+crimeCatId);  
    
        myCrimeTypeList.put("crimeTypeList", this.crimeTypeManager.getCrimeTypeList(crimeCatId));
    
    
        model.addAttribute("dbcriminals", myCriminalList);
        .....
        session.setAttribute("crimeRecNo", crimeRecNo);
    
        return new ModelAndView("crime_registration");
    
    
    }
    

    4。申请新表格

    @RequestMapping(value = "crime_registration_new.htm", method = RequestMethod.POST)
    public String loadNew(HttpServletRequest request,Model model,
            HttpServletResponse response,SessionStatus status,HttpSession session) throws Exception {
    
        status.setComplete();
    
    
        return "redirect: crime_registration.htm";
        //return new ModelAndView(new RedirectView("crime_registration.htm")); 
    
    
    }
    

1 个答案:

答案 0 :(得分:0)

将此添加到4可以解决问题

@RequestMapping(value = "crime_registration_new.htm", method = RequestMethod.POST)
public String loadNew(HttpServletRequest request,Model model,
        HttpServletResponse response,SessionStatus status,HttpSession session) throws Exception {

    status.setComplete();

  model.addAttribute("crime", new Crime());
    return "redirect: crime_registration.htm";
    //return new ModelAndView(new RedirectView("crime_registration.htm")); 


}