java - 从 Java Controller 启动 html 页面时添加查询字符串值

标签 java spring-boot post query-string

我有一个 HTML 页面,在发布后从 java Controller 启动,我想在 url ex 中附加一个查询字符串值:(localhost:8000/gdata?id=11)。这可以做到吗?这是我的 Controller 代码:

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";
    }

}

最佳答案

您可以使用重定向(最好的做法是在发布后重定向,无论看到 - https://en.wikipedia.org/wiki/Post/Redirect/Get

Spring 的重定向 View :

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

类似于:

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

关于java - 从 Java Controller 启动 html 页面时添加查询字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53340916/

相关文章:

java - 使用 Camel Rest DSL 上传多部分文件

java - Nexus sonatype groovy 获取 LDAP 用户

java - 将多种形式的零件转换为文件

java - Spring JPA Repository - 在服务器重启时保留数据

java - 如何使用 Jersey POST 请求发送 header 和正文?

python - Github-api 在使用 python + urllib2 传递 json 数据时给出 404

java - 下面的代码如何生成对象?

spring-boot - Spring Cloud 领事 : Unable to override defaults in ConsulProperties

java - 无法启动嵌入式容器 Spring Boot 应用程序 org.apache.catalina.LifecycleException : A child container failed during start

http - 字符 + 在 HTTP Post 中转换为 %2B