是否有类似@PostPostRequest的东西?

时间:2015-01-14 05:59:11

标签: spring spring-mvc post spring-annotations

我经常希望在使用之前优化发布的数据,例如

public class Song() {
  public String[] tags;
  public String csvTags;

  public void setTagsWithCsv() {
    // this one should be more complicated for handling real data
    this.tags = csvTags.split(",");
  }
}

在这种情况下,我必须在控制器类的方法中调用setTagsWithCsv方法。

@RequestMapping(value = "/song/create", method = POST)
public String createSong(Song song) {
  song.setTagsWithCsv();

  songService.create(song); // some code like this will come here
  ...
}

有没有办法用'@ PostConstruct'这样的注释来调用方法?应该在发布请求后调用该方法。

1 个答案:

答案 0 :(得分:1)

也许你刚刚提供了一个不好的例子,但是如果你的歌曲是POJO的形式,你可以通过调用setCsvTags来实现它

public class Song {
  private String[] tags;
  private String csvTags;

  public void setCsvTags(String csvTags) {
     this.csvTags = csvTags;
     this.tags = csvTags.split(",");
  }

  public void setTags(String[] tags) {
     this.tags == tags;
     String newCsvTags = Arrays.toString(tags);
     this.csvTags = newCsvTags.substring(1, newCsvTags.length() - 1); // get rid of []
  }
}

或制作方法,而不保留显式标签数组

public class Song {

  private String csvTags;

  public void getTags() {
     return csvTags.split(",");
  }

}

否则,没有标准的方法,你可以在到达你的控制器之前玩请求拦截,但我认为这只是浪费时间。