spring mvc springmvc重定向url,地址栏带了参数,不想带怎么办

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&00:59 提问
spring mvc controller重定向一个外网页面
如题spring mvc controller 怎么指向一个外网页面,并且是POST请求,还带了一些参数及值到那个页面。
按赞数排序
使用return "redirect:
有人知道吗 我也很想知道这个问题的答案
坐等大神回答啊,这个很有用
使用http post不就可以了,网上一搜有很多啊
543关注|200收录
493关注|704收录
438关注|89收录
其他相似问题spring mvc 重定向,地址栏带了参数,不想带怎么办_百度知道1025人阅读
Spring(2)
Java(19)
在spring的一个controller中要把参数传到页面,只要配置视图解析器,把参数添加到Model中,在页面用el表达式就可以取到。但是,这样使用的是forward方式,浏览器的地址栏是不变的,如果这时候浏览器F5刷新,就会造成表单重复提交的情况。所以,我们可以使用重定向的方式,改变浏览器的地址栏,防止表单因为刷新重复提交。
&%@ page language=&java& contentType=&text/ charset=UTF-8&
pageEncoding=&UTF-8&%&
&%@ taglib prefix=&c& uri=&/jsp/jstl/core& %&
&!DOCTYPE html PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN& &http://www.w3.org/TR/html4/loose.dtd&&
&meta http-equiv=&Content-Type& content=&text/ charset=UTF-8&&
&title&login&/title&
&form id=&form1& action=&/demo/user/login& method=&post&&
账号:&input type=&text& name=&name& /&&/br&
密码:&input type=&password& name=&password& /&&/br&
&input type=&submit& value=&submit&/&
controller:
package com.demo.
import java.util.M
import org.springframework.stereotype.C
import org.springframework.ui.M
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.RequestP
* @author lpj
* @date 日
@Controller
@RequestMapping(&/user&)
public class DemoController {
@RequestMapping(&/login&)
public String login(@RequestParam Map&String, String& user, Model model) {
System.out.println(&用户提交了一次表单&);
if (user.get(&name&).isEmpty()) {
username = &Tom&;
username = user.get(&name&);
model.addAttribute(&msg&, username);
return &home&;//此方式跳转,页面刷新会重复提交表单
return &redirect:/home.jsp&;
由于重定向相当于2次请求,所以无法把参数加在model中传过去。在上面例子中,页面获取不到msg参数。要想获取参数,可以手动拼url,把参数带在后面。
Spring 3.1 提供了一个很好用的类:RedirectAttributes。 使用这个类,我们可以把参数随着重定向传到页面,不需自己拼url了。
把上面方法参数中的Model换成RedirectAttributes,参数就自动跟在url后了。
但是,这样页面不能用el获取到,还要另外处理,所以,我们还有一种方式,不拼url,用el获取参数,就像普通转发一样。
还是使用RedirectAttributes,但是这次不用addAttribute方法,spring为我们准备了新方法,addFlashAttribute()。
这个方法原理是放到session中,session在跳到页面后马上移除对象。所以你刷新一下后这个&#20540;就会丢失。
package com.demo.
import java.util.M
import org.springframework.stereotype.C
import org.springframework.ui.M
import org.springframework.web.bind.annotation.ModelA
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.RequestP
import org.springframework.web.servlet.mvc.support.RedirectA
* @author lpj
* @date 日
@Controller
@RequestMapping(&/user&)
public class DemoController {
@RequestMapping(&/login&)
// public String login(@RequestParam Map&String, String& user, Model model) {
public String login(@RequestParam Map&String, String& user, RedirectAttributes model) {
System.out.println(&用户提交了一次表单&);
if (user.get(&name&).isEmpty()) {
username = &Tom&;
username = user.get(&name&);
model.addFlashAttribute(&msg&, username);
return &home&;//此方式跳转,页面刷新会重复提交表单
return &redirect:/user/toHome&;
@RequestMapping(&/toHome&)
public String home(@ModelAttribute(&msg&) String msg, Model model) {
System.out.println(&拿到重定向得到的参数msg:& + msg);
model.addAttribute(&msg&, msg);
return &home&;
这边我们使用@ModelAttribute注解,获取之前addFlashAttribute添加的数据,之后就可以正常使用啦。
需要例子代码的可以点此下载:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:7495次
排名:千里之外
原创:16篇
转载:20篇
(1)(20)(6)(8)(1)

我要回帖

更多关于 spring mvc 重定向 的文章

 

随机推荐