今天遇到的关于重定向地址栏乱码的问题

今天写了个springmvc的小练习,遇到点问题,

模拟的场景非常简单,登录到注册界面,输入信息,注册,然后提交表单,controller

接收到参数信息并封装成一个对象使用,然后根据刚才填的username

发送一个重定向请求,这样式的:


@RequestMapping(value="/register",method=RequestMethod.POST)
public String processRegistration(Spitter spitter){

return "redirect:/spitter/"+spitter.getUsername();
}

然后另一个controller接收请求,根据url中的username来查找刚才注册的信息,并返回

@RequestMapping(value="/{username}",method=RequestMethod.GET)
public String showSpitterProfile(
@PathVariable String username,Model model){
Spitter spitter=spitterRepository.findByUsername(username);
System.out.println(model);
model.addAttribute(spitter);
return "profile";

}


运行后报错。。。,找不到对应用户信息,debug看到username是乱码,

才想起来没有做post转码,于是加上了CharsetEncodingFilter并设置为utf-8,

再次启动,这次又有新问题了。。。url上居然最后不是中文,而是???乱码,我很慌,因为我不清楚为什么用了字符过滤器过滤post,

get请求反倒乱码,而且tomcat配置里URIEncoding也是有的。。。

现在也不知道为什么,但是url乱码是肯定的,于是用最笨的方法,URLEncoder和URLDecoder,别管代码丑不丑。。。反正能用

有知道为什么的吗?不妨告诉本菜啊。。。新人入行不到三个月的菜鸟程序员求指教



@RequestMapping(value="/register",method=RequestMethod.POST)
public String processRegistration(Spitter spitter){

//redirect表明这个视图是重定向而不是转发,它将重定向到基本信息页面
return "redirect:/spitter/"+URLEncoder.encode(spitter.getUsername());
}


@RequestMapping(value="/{username}",method=RequestMethod.GET)
public String showSpitterProfile(
@PathVariable String username,Model model){
username=URLDecoder.decode(username);
Spitter spitter=spitterRepository.findByUsername(username);
System.out.println(model);
model.addAttribute(spitter);
return "profile";

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值