1

I have a HTML page that is launched from a java controller after a post and I want to attach a query string value in the url ex: (localhost:8000/gdata?id=11). Can this be done? Here is my controller code:

package com.sa.example;

import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.RequestParam;

import com.sentinel.advisor.GData;
import com.sentinel.advisor.GDataJdbcRepository;

@Controller
public class GDataController {

    @Autowired
    GDataJdbcRepository repository;

    @GetMapping("/gdata")
    public String gDataForm(Model model) {
        return "gData";
    }

    @PostMapping("/gdata")
    public String gDataSubmit(@ModelAttribute GData gData) {
        String returnString = repository.insert(gData);
        //returnString should be returned in the url as a query string
        return "result";
    }

}
1

1 Answer 1

2

You can use a redirect (it is best practice to redirect after post regardless see - https://en.wikipedia.org/wiki/Post/Redirect/Get.

Spring's redirect view:

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/view/RedirectView.html

Something like:

@Controller
public class GDataController {

    @Autowired
    GDataJdbcRepository repository;

    @GetMapping("/gdata")
    public String gDataForm(Model model) {
        return "gData";
    }

    @PostMapping("/gdata")
    public RedirectView gDataSubmit(@ModelAttribute GData gData) {
        String returnString = repository.insert(gData);
        return new RedirectView("/sucess?returnString=" + returnString, true);
    }

    @GetMapping("/success")
    public String getResultPage(@RequestParam("returnString")String returnString){
        return "result";
    }
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.