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