0 0

SpringMVC重定向后页面取不到值0

SpringMVC重定向后页面取不到值,怎么做页面才能取到值啊?
控制层代码:
package com.study.action;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import com.study.pojo.User;
import com.study.service.UserService;

import javax.servlet.http.HttpServletRequest;
@Controller
@RequestMapping("/user")
public class UserLoginAction{
	
	@Resource(name="userService")
	private UserService userService;
	
	@RequestMapping("/login")
	public String login(String username,String password,
			HttpServletRequest request,RedirectAttributes redirectAttributes){
		//对密码进行MD5加密
		//List<User> list = userService.search(username,DigestUtils.md5DigestAsHex(password.getBytes()));
		List<User> list = userService.search(username,password);
		if(list.size()>0){
                        //略
		}else{ 
			redirectAttributes.addFlashAttribute("error","账号、密码错误");
			return "redirect:/login/login.jsp";
		}
	}
}

login.jsp那里就用${error}来取的,可是取不到,这是怎么回事啊?
2013年12月14日 22:39

4个答案 按时间排序 按投票排序

0 0

${param.error}


redirectAttributes.addFlashAttribute("error","xxx")后"redirect:/login/login.jsp"最终跳转的地址是/login/login.jsp?error=xxx

2013年12月16日 17:39
0 0

如果你想/user/login请求后显示/login/login.jsp页面,
那就可以直接返回ViewName

 @RequestMapping("/login")  
    public String login(String username,String password,  
            HttpServletRequest request,Model model){  
        //对密码进行MD5加密  
        //List<User> list = userService.search(username,DigestUtils.md5DigestAsHex(password.getBytes()));  
        List<User> list = userService.search(username,password);  
        if(list.size()>0){  
                        //略  
        }else{   
           model.addAttribute("error","账号、密码错误");  
           return "/login/login";  
        }  
    }  
}  


然后在-servlet.xml配置文件里配置有ViewResolver来指定对应路径哪个路径下叫/login/login的View页面


而如果确实需要用redirect:跳转另一个请求,那应该是类似如下做法:
	@RequestMapping("/list")
	public String list(User user,String pageNow,Model model){
		PageView pageView = null;
		if(CommonUtil.isEmpty(pageNow)){
			pageView = new PageView(1);
		}else{
			pageView = new PageView(Integer.parseInt(pageNow));
		}
		pageView = userService.query(pageView, user);
		model.addAttribute("pageView", pageView);
		return "user/list";
	}

	@RequestMapping(value="/add",method=RequestMethod.POST)
	public String add(@Valid User user,BindingResult errors,Map<String, Object> map){
		//validator验证错误
		if(errors.hasErrors()){
			map.put("errors", errors.getAllErrors());
			map.put("user", new User());
			return "user/add";
		}
		//判断用户名是否已存在 
		Map<String, Object> params = new HashMap<String, Object>();
		params.put("username", user.getUsername());
		User u = userService.getUserByParam(params);
		if(u != null){
			map.put("errors", "用户名已存在,请重新输入.");
			map.put("user", new User());
			return "user/add";
		}
		String passwd = user.getPasswd();
		user.setPasswd(CommonUtil.encodePwdByMD5(passwd));
		user.setType("1");//1:管理员
		userService.add(user);
		return "redirect:list";
	}


请注意add()方法里的redirect:list 这个list对应的是上面@RequestMapping("/list")

请仔细体会下,我上面说的两个方面

2013年12月16日 15:56
0 0

return "/login/login.jsp"; 直接这样试试看呢

2013年12月16日 14:41
0 0

查看方法是否执行了else里的方法

2013年12月15日 11:09

相关推荐

    详解SpringMVC重定向传参数的实现

    在目标页面`home.jsp`中,由于重定向时参数是以查询字符串的形式传递的,所以我们不能直接使用EL表达式(${msg})来获取。但是,Spring MVC提供了一种称为“Flash Attributes”的机制,可以让这些参数在重定向后的...

    SSM笔记-SpringMVC自定义视图及重定向视图、语言国际化

    默认情况下,SpringMVC使用`InternalResourceViewResolver`来解析视图,它将视图名映射到JSP或Freemarker等模板引擎的页面。如果需要使用其他视图技术,如Thymeleaf或Velocity,或者有特定的视图解析规则,可以通过...

    简单谈谈SpringMVC转发和重定向的区别

    在 SpringMVC 中,可以使用 `RedirectAttributes` 对象来传递参数到重定向后的页面上。例如: ```java @RequestMapping("/update.do") public String update(RedirectAttributes redirectAttributes) { ...

    浅谈Springmvc中的页面跳转问题

    浅谈Springmvc中的页面跳转问题是指在SpringMvc框架中,Controller处理完数据后如何将用户重定向到另一个页面或功能处理方法的过程。这个问题是SpringMvc中一个非常重要的知识点,需要开发者对其有深入的了解。 ...

    转发与重定向的区别

    2. **不共享request域数据**:由于每次请求都是独立的,所以重定向后的请求无法访问到之前的request对象中的数据。 3. **效率较低**:相较于转发,重定向需要客户端重新发起请求,增加了网络开销。 4. **路径不受限*...

    详解spring mvc 请求转发和重定向

    在Spring MVC框架中,请求转发和...总的来说,请求转发通常用于在同一应用内部进行页面间的导航,而重定向则常用于外部链接、登录重定向或防止表单重复提交等情况。在实际开发中,开发者应根据具体需求选择合适的方法。

    (代码)SpringMVC第6讲:请求转发和重定向

    例如,如果希望用户在提交表单后看到一个新页面,而新页面与旧页面属于不同应用或需要独立的URL,那么重定向可能是更优的选择。如果页面间的跳转只涉及内部逻辑,且需要共享数据,请求转发则更为适用。 通过上述...

    SpringMVC是实现登陆

    通过配置Spring Security,我们可以设置登录成功后的处理器,例如重定向到特定的页面,或者在HttpSession中存储用户信息。 在视图层,SpringMVC使用View Resolver解析逻辑视图名到实际的视图资源,如JSP页面。登录...

    SpringMVC配置拦截器实现登录控制的方法

    若不在排除列表中,则通过请求中的Session检查用户登录状态,如果用户未登录,则将请求重定向到登录页面。 5. 登录页面跳转实现:通常在页面中使用JSTL标签进行Session的登录状态检查,并实现登录页面的跳转逻辑。...

    吴天雄--SpringMVC笔记.doc

    - 跳转方式:forward 和 redirect,分别对应页面内部转发和外部重定向。 - 作用域传值:session、request、application 等不同范围的变量传递。 - 文件上传与下载功能,支持大文件和断点续传。 - 异常处理机制,...

    SpringMVC 拦截器 实现 登录退出功能

    如果没有,可以重定向到登录页面,或者返回错误信息。登录状态可以通过session或cookie来维护。 下面是一个简单的拦截器实现: ```java public class LoginInterceptor implements HandlerInterceptor { @...

    springMVC简单登陆例子

    - 在登录成功或失败时,Controller会重定向或转发到相应的视图。 6. **安全性考虑** - 为了防止SQL注入,应使用PreparedStatement代替Statement,并确保正确处理用户输入。 - 对密码进行加密存储,登录时比较...

    SpringMVC 中xml文件的读取与显示

    在描述中提到的JSP页面实现,是指在SpringMVC中,控制器处理完请求后,可能会转发或重定向到一个JSP页面来呈现结果。控制器可以通过`ModelAndView`对象或者直接在`@RequestMapping`方法中返回逻辑视图名来指定JSP...

    springmvc简单的登陆

    5. **视图处理**:根据验证结果决定重定向或转发到相应的视图。登录成功通常会跳转到主页,登录失败则重新显示登录页面,并添加错误信息。 6. **JSP 视图**:创建对应的 JSP 页面,如 `login.jsp` 显示登录表单,`...

    springmvc-data-object

    例如,我们可以创建一个User类,然后在控制器方法中声明一个User类型的参数,Spring MVC会自动将请求中的相关参数值填充到User对象中。 在Spring MVC中,有几个关键组件参与了这个过程: 1. **@RequestParam**:...

    SpringMVC入门很简单之数据验证

    开发者可以通过`BindingResult`获取错误信息,并决定如何呈现给用户,例如重定向到错误页面或显示错误消息。 4. **整合Hibernate Validator** Hibernate Validator是Bean Validation的实现,可以与SpringMVC无缝...

    基于springMVC的session拦截器

    通过实现Session拦截器,可以在请求被处理之前检查Session中是否存在必要的用户信息,如果不存在,则可以重定向到登录页面或返回错误信息。 3. **创建Session拦截器** 首先,我们需要创建一个实现了`...

    annotation-springMVC.rar_springmvc_springmvc API chm

    《SpringMVC注解详解与应用》 SpringMVC作为Java Web开发中广泛使用的轻量级框架,极大地简化了Web应用程序的构建。其中,注解的使用是SpringMVC的一大特色,它使得代码更加简洁、易读,同时也提高了开发效率。下面...

    springMVC基本理论

    - 控制器不仅处理用户的请求,还负责转发或者重定向到特定的视图页面。 - 实例:当用户点击登录按钮时,控制器接收此请求并调用模型进行验证,然后根据验证结果选择显示登录成功页面还是错误页面。 #### 四、...

    springMVC实现用户注册及登陆

    5. **重定向或显示消息**: 登录成功后,重定向到主页或其他受保护的页面;失败则返回错误信息。 ### 六、视图解析器配置 配置视图解析器,如`InternalResourceViewResolver`,指定JSP页面的位置,以便控制器可以...

Global site tag (gtag.js) - Google Analytics