@Request Param截断

时间:2017-08-22 01:09:35

标签: mongodb jsp spring-mvc

我试图通过Id从MongoDB中删除文档,ID是一个" Sting url":`

@Document(collection="Topic")
public class Topic {    

@Id
private String url;`
问题是当我尝试删除时:`

 @GetMapping("/deletetopic")
 public String deleteTopic(@RequestParam String id, Model model) {
    topicServic.deleteTopic(id);
    model.addAttribute("topics", topicServic.getAllTopics());
    return "/bonjour";`

来自我的JSP / bonjour:`

<td><a href="deletetopic?id=${topic.url}"><span class="glyphicon glyphicon-
trash"></span></a></td>`

&#34; @RequesParam Strin id&#34;不包含所有的URL ..知道一个网址太长,我只得到31个第一个字符;

示例:网址ID:&#34; https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&ved=0ahUKEwjLiL2wz-PVAhWBahoKHUwKAQcQFghLMAQ&url=http%3A%2F%2Fdevlog.cnrs.fr%2F_media%2Fjdev2015%2Fjdev2015_t6_stephanederaco_springboot-0150703.pdf%3Fid%3Djdev2015%253At6.a07%26cache%3Dcache&usg=AFQjCNFC0lGyd-FSpcr7jwbToTs_EJLo&#34;

如果我添加这个:System.out.println(id); `

@GetMapping("/deletetopic")
public String deleteTopic(@RequestParam String id, Model model) {
    System.out.println(id);
    topicServic.deleteTopic(id);
    model.addAttribute("topics", topicServic.getAllTopics());
    return "/bonjour";

}`

我只将其作为网址ID:https://www.google.com/url?sa=t 并且没有带有该ID的文档,所以没有任何反应

任何解决方案? 谢谢你的帮助:D

1 个答案:

答案 0 :(得分:0)

我怀疑它不会太短。由于您的网址未被编码,因此String得到了切断特殊字符开始的位置。一个类似的问题:How to send special characters in request parameters in Spring