var url = $('input[name="itemCode"]').val() +'/join.html?userid='+ $('input[name="userid"]').val()+'&telphone='+phone+'&axdversion='+ version +'&itemId='+ $('input[name="itemId"]').val();
request.reqLocation(url);
Js中拼出了一个url,之后便跳转Url。其中
reqLocation : function(url){
window.location = url;
},
后端代码:
public ModelAndView registerHtml(String itemCode, Long itemId, Long userid, HttpServletRequest request, HttpServletResponse response) {
......//业务代码
}
但是在有些情况下会由于参数问题报错:
【/item/zxyh/join.html】【{userid=14&itemCode=xyz&itemId=8:}】 java.lang.NullPointerException at channel.web.item.OpenItemController.down(OpenItemController.java:468) at sun.reflect.GeneratedMethodAccessor165.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorIm
正确的应该像这样:
【/item/zxyh/join.html】【{itemId:123},{itemCode:xyz},{userid:1}】
springMVC 并没有根据&符号,将各种参数赋值。所以导致我的itemCode之类的参数为空。
js是手机端的,并且也只有少量请求会出现这种情况,想知道为什么,或者有没有人遇到同样的问题?
J'ai enfin trouvé le problème ! !
La cause du problème devrait être une attaque malveillante, utilisant un outil pour injecter des paramètres. On ne sait pas exactement comment procéder.
@RequestParam
Baidu
Cela semble n'avoir rien à voir avec SpringMVC. Si l'itemId n'est pas obtenu dans JS, le côté serveur obtiendra naturellement NULL.
En cas d'erreur, vérifiez si les valeurs des paramètres dans l'URL indiquées sous le débogage front-end sont normales. Le back-end vérifie si la requête contient les paramètres ci-dessus et leurs valeurs
.