0

パラメータを入力してレコードのリストを照会するページがあります。クエリ ボタンをクリックすると、リストからアイテムがクリックされるとリストが取得され、レコードが表示された最初のページに戻ります。

別のボタン ' new ' を押してページをクリアし、空のページを返すと、URL にパラメーターがあり、ページ上のアイテムの値を設定します。URL にあるアイテムは CrimeRecNo です。

空のページを返したいのですが、どうすればこれを取り除くことができますか?

シナリオ

  1. 私は次のURLのページにいます:http://adomain/crimeTrack/crime_registration.htm

  2. レコードのリストを表示する別の URL に POST を実行するクエリをクリックします。http://adomain/crimeTrack/crimeList.htm

  3. 上記の 2 のページで、POST を実行して次の URL に移動するレコードを 1 つ選択します。http://adomain/crimeTrack/getCrime/6.htm - where 6 is the crimeRecNo.

  4. 私は今、上記の URL にいます。「NEW」ボタンをクリックして、上記の 1 の URL を含む空白のフォームを取得します。new を押すと、コード サンプル 4のコントローラー メソッドに対して POST が実行されます。

このメソッドは、GET メソッドにマップされた URL へのリダイレクトを行いますが、最終的な URL は次のようになります。http://adomain/crimeTrack/%20crime_registration.htm?crimeRecNo=6

値 6 は CrimeRecNo フィールドに残り、フォーム全体は消去されません。

コントローラーのメソッドは次のとおりです。

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. 1商品のリクエスト/一覧から商品を選択した場合

@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")); 


}
4

1 に答える 1