2012-12-24 49 views
0

我希望在按下按钮时执行showEnteredData方法。 但它不执行该功能。我认为它应该自动执行。 问题是什么? 感谢您的帮助:=)Java Spring MVC Webform POST请求方法

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@ page session="false"%> 

    <div id="leer" style="float: left;"></div> 
    <div class="filmFilter"> 
     <form action="articles" method="get"> 

      <select name="dropdownFilmeFilter"> 
       <option value="aufsteigend">Preis: aufsteigend</option> 
       <option value="absteigend">Preis: absteigend</option> 
       <option value="bewertung">Kundenbewertung</option> 
       <option value="erscheinungsdatum">Erscheinungsdatum</option> 
      </select> 

      <input type="submit" value="Done" /> <a href="home">bring me back 
       home</a> 
     </form> 

    </div> 

@RequestMapping(value = "/articles") 
public String showHome (Model model){ 
    List<Article> article = (List<Article>) gd.findAll(Article.class); 
    model.addAttribute("articles", article); 


    return "articles"; 
} 


@RequestMapping(value = "/articles", method = RequestMethod.POST) 
public String showEnteredData(@RequestParam("dropdownFilmeFilter") String filter, Model model) { 
    System.err.println("hohooh"); 


    List<Article> article = (List<Article>) gd.sortByAttribute(Article.class, "price", true); 
    article.clear(); 

    if (filter == "aufsteigend"){ 
     article = (List<Article>) gd.sortByAttribute(Article.class, "price", true); 
    } 
    model.addAttribute("articles", article); 

    return "articles"; 
} 

回答

3

您可以在您的表单标签的方法改变为“后”,或更改@ RequestMapping的方法RequestMethod.GET。我会推荐第一个选项。

+1

用于将表单更改为POST的+1 - 语义上,没有充分的理由使用GET来表单,并且有可能会混淆未来的维护人员(可能会或可能不是您)。 – GreyBeardedGeek