您的位置:首页 > 编程语言 > Java开发

《Java从入门到放弃》框架入门篇:springMVC数据传递 (二)

2019-03-11 14:44 633 查看
版权声明:©著作权归作者所有:来自CSDN博客作者十方上下的原创作品,如需转载,请注明出处,否则将追究法律责任 https://blog.csdn.net/xy229935/article/details/88353535

上一篇讲完了springMVC中数据传递中的接收数据,今天继续完成数据的向后传递。

数据传递的核心对象ModelAndView,注意其包名,不要引用错了!

正确的:org.springframework.web.servlet.ModelAndView

错误的:org.springframework.web.portlet.ModelAndView

 

我们继续完成前面的登录功能:

如果登录成功则跳转到index.jsp,并显示“欢迎你:xxxx(用户的昵称)”。

如果登录失败则回到login.jsp,并显示提示信息“猪脑子,账号和密码都输不对!”。

 

具体实现步骤如下:

    1.1)修改User类,添加昵称属性。

[code]public class User {

private String loginid;
private String loginpwd;
private String nickname;    //用户昵称

public String getLoginid() {
return loginid;
}
public void setLoginid(String loginid) {
this.loginid = loginid;
}
public String getLoginpwd() {
return loginpwd;
}
public void setLoginpwd(String loginpwd) {
this.loginpwd = loginpwd;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
}

 

    1.2)修改MyController类,添加login4方法(注意当前方法的返回值和之前方法的区别)。

[code]    @RequestMapping("/login4")
public ModelAndView login4(@ModelAttribute("user") User use){
ModelAndView mav = new ModelAndView("index.jsp");    //默认目标视图index.jsp

return mav;
}

 

    1.3)在login4方法内判断账号(admin)和密码(666),正确就跳转到index.jsp,错误则回到login.jsp

[code]    @RequestMapping("/login4")
public ModelAndView login4(@ModelAttribute("user") User use){
ModelAndView mav = new ModelAndView("index.jsp");
if(use.getLoginid().equals("admin") && use.getLoginpwd().equals("666")){
use.setNickname("我是黄河你是海流");
mav.addObject("user", use);            //添加需要传递到下一个视图的数据
}
else{
mav.addObject("msg", "猪脑子,账号和密码都输不对!");
mav.setViewName("login.jsp");        //修改视图
}
return mav;
}

 

    1.4)修改loing.jsp和index.jsp页面,在页面上加入信息的显示。

        login.jsp页面

[code]  <body>
<form action="login2.form" method="post">
账号:<input name="loginid" type="text" /><br />
密码:<input name="loginpwd" type="password" /><br />
<input type="submit" value="登录" />
</form>
<div style="color:red;">${msg }</div>
</body>

        index.jsp页面

[code]  <body>
欢迎你:${user.nickname }<br />
</body>

 

    1.5)运行并查看结果(数据是否正确从Controller类传递到JSP页面)

    

===================================================

注意:ModelAndView相关于使用request传递数据,如果有多个页面需要使用用户信息,那么还是需要把user对象保存到session 。

===================================================

在springMVC中使用request,response,session对象也非常方便,

将login4的代码修改如下(当前功能只使用session):

[code]    @RequestMapping("/login4")
public ModelAndView login4(@ModelAttribute("user") User use,
HttpServletRequest request, HttpServletResponse response, HttpSession session){
ModelAndView mav = new ModelAndView("index.jsp");
if(use.getLoginid().equals("admin") && use.getLoginpwd().equals("666")){
use.setNickname("我是黄河你是海流");
//mav.addObject("user", use);            //添加需要传递到下一个视图的数据
session.setAttribute("user", use);
}
else{
mav.addObject("msg", "猪脑子,账号和密码都输不对!");
mav.setViewName("login.jsp");        //修改视图
}
return mav;
}

 

好了,打完收功!!!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: