Spring MVC,创建一个按钮,点击后返回一个字符串值。

11 浏览
0 Comments

Spring MVC,创建一个按钮,点击后返回一个字符串值。

我对springMVC还比较新,目前我有一些代码,可以从jsp页面的中获取输入,并根据输入创建不同的列表(如果我输入正确的字符串)。我希望将其改为按钮,这样我就可以有四个按钮,每个按钮返回一个不同的字符串,例如 "one"、"two"、"three"和"four"。这样用户就不需要输入了。

我看到有一个可用,但我不知道如何从中返回字符串值。另外,我也研究了angularJS,发现可以在点击时调用一个函数。但同样,我不知道如何实现与我的控制器的关联。我真的不知道如何实现这个。希望能得到帮助。

目前我正在实现以下内容:







这将获取输入并将其存储在一个对象中:

@Controller
@SessionAttributes("input")
public class EventController {
@RequestMapping(value = "/event", method= RequestMethod.GET)
public String displayEvent (Model model) {
    AccessInput userInput = new AccessInput();
    model.addAttribute("input", userInput);
    System.out.println("finished get method");
    return "event";
}
@RequestMapping(value = "/event", method= RequestMethod.POST)
public String processEvent(@ModelAttribute("input")AccessInput userInput) {
    System.out.println(userInput.getListType());          //只是为了知道它的值是什么
    return "redirect:results.html";
}

这是根据我传递给对象的字符串创建列表的控制器:

@RestController
@SessionAttributes("input")
public class ReportController {
@RequestMapping(value="/events")
public List getEvents(@ModelAttribute("input")AccessInput userInput) {
    List events = new ArrayList<>();
    events = ProcessChoice.ofList(userInput.getListType());
    System.out.println(userInput.getListType());
    return events;
}

}

编辑:

只是想说明一下,我已经解决了这个问题,我按照Vipin Dubey给出的示例进行了更改。我删除了POST方法,并添加了一个@RequestParam作为参数,将event.jsp上的按钮重定向到"results.html?input=one",然后将这个值添加到我的模型中,以将其存储在会话中。

@Controller
@SessionAttributes("URLparam")
public class ResultController {
  @RequestMapping(value = "/results.html", method = RequestMethod.GET)
  public String buttonSelect(Model model, @RequestParam("input")String input) {
    model.addAttribute("URLparam", input);
    System.out.println(input);
    return "result";
  }
}

0
0 Comments

问题的原因是用户想要在点击按钮后返回一个字符串值,但不清楚如何实现。解决方法有两种:

1. 使用链接并将其样式设置为按钮,然后可以直接调用控制器。将以下代码添加到HTML页面中:

One
two
three
four

其中,`/events`是控制器的URL,`input`是参数名称,`one`、`two`、`three`、`four`是不同按钮的值。

2. 使用jQuery或JavaScript,在表单中使用隐藏的输入字段,根据点击的按钮提交表单。将以下代码添加到HTML页面中:


在这种方法中,根据点击的按钮,使用jQuery将相应的值设置到隐藏输入字段中,并通过提交表单将值发送到控制器。

不需要对控制器进行任何更改,只需将URL中的参数值设置为您需要在控制器中接收的值。例如 `href="/events?input=one"`。

如果出现404错误(资源未找到),可能是URL配置不正确或控制器中没有处理对应的URL路径。需要确保URL路径正确,并在控制器中添加对应的处理方法。

0