Java 在Spring中使用另一个控制器重置控制器

Java 在Spring中使用另一个控制器重置控制器,java,spring,jsp,spring-mvc,Java,Spring,Jsp,Spring Mvc,我是一名java开发实习生,这是我在这里的第一个问题,所以请不要评判我 我有一个处理jsp文件的控制器类。第一个jsp(userinput.jsp)有3个文本字段(lat、lon、radius)和2个按钮(submit、apply默认值)。第二个jsp只是一个填充了数据(取决于用户输入)的HTML表,以及一个重置按钮,该按钮将返回起始页(userinput.jsp)并删除所有现有数据。我该怎么做 附加问题:如果我尝试在第二个状态(html表)刷新页面,浏览器会生成一条警告,说我将丢失所有数据,不

我是一名java开发实习生,这是我在这里的第一个问题,所以请不要评判我

我有一个处理jsp文件的控制器类。第一个jsp(userinput.jsp)有3个文本字段(lat、lon、radius)和2个按钮(submit、apply默认值)。第二个jsp只是一个填充了数据(取决于用户输入)的HTML表,以及一个重置按钮,该按钮将返回起始页(userinput.jsp)并删除所有现有数据。我该怎么做

附加问题:如果我尝试在第二个状态(html表)刷新页面,浏览器会生成一条警告,说我将丢失所有数据,不应该刷新。我怎样才能摆脱这个

@Controller
@EnableAutoConfiguration
class SpringBootController implements InitLogger {

    @GetMapping(value="/geohash")
    public String getUserInput(ModelMap model) {
        model.put("command", new Tuple());
        return "UserInput";
    }

    @PostMapping(value="/geohash", params="SubmitWithDefault")
    public String defaultUserInput(ModelMap model) {
        model.put("command", tupleFill (48.104564, 20.800041, 6) );
        return "UserInput";
    }

    @PostMapping(value = "/geohash", params="Submit")
    public String printHash(@ModelAttribute("user")Tuple tuple,ModelMap model) {
        GetData.setLat1(tuple.getFirstCoordinate());
        GetData.setLon1(tuple.getSecondCoordinate());
        GetData.setRad1(tuple.getRadius());

        LocationExecute.calculate();
        model.addAttribute("geoItemList", LocationExecute.getTupleList());
        model.addAttribute("listSize", LocationExecute.getTupleList().size());
        return "Geohash";
    }

    @PostMapping(value = "/geohash", params="reset", method = RequestMethod.GET)
    public ModelAndView method() {
        return new ModelAndView("redirect:geohash");

    }
}
userinput.jsp-按钮

<input type="submit" name="Submit" value="Submit" style="height:25px; width:100px"/> 
<input type="submit" name="SubmitWithDefault" value="Default Values" style="height:25px; width:100px">

geohash.jsp-(html表格)重置按钮

<input type="reset" name="reset" value="Reset" style="height:30px; width:100px"> 

您需要在MVC中实现PRG(后重定向Get)设计模式来解决这个问题。 有关更多信息,请浏览以下内容

因此,如果您希望将一些数据发送到redirect方法,然后使用spring的flashAttributes,您需要在MVC中实现PRG(Post-redirect Get)设计模式来解决这个问题,而不是返回视图名redirect it,这样您的问题就会得到解决。 有关更多信息,请浏览以下内容

因此,不要返回视图名称,而是将其重定向以解决您的问题,如果您希望将一些数据发送到重定向方法,则使用spring的flashAttributes解决此问题:

geohash.jsp (添加的表单:表单标签)

这样解决:

geohash.jsp (添加的表单:表单标签)

<form:form action="/geohash">
    <th> <input type="submit" name="reset" value="Reset" style="height:30px; width:100px"> </th>
    </form:form>
@RequestMapping(value = "/geohash", params="reset", method = RequestMethod.POST)
 public ModelAndView method() {
        return new ModelAndView("redirect:geohash");
}