Spring的业务层和Spring的持久层都已经开始完成了,该是为程序提供界面的时候了。Struts2框架由于抢尽天时地利,成为当下最流行的展现层框架。但Spring MVC相对于Struts2更加简单、强大、优雅。此外,由于Spring MVC框架出自Spring之手,因此和Spring容器没有任何的阻抗,显得天衣无缝。
配置Spring MVC框架
首先对web.xml文件进行配置,以便web容器启动时能够自动启动Spring容器,web.xml文件的核心代码如下:
contextConfigLocation
classpath:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
bbs
org.springframework.web.servlet.DispatcherServlet
3
bbs
*.html
处理登录请求
在com.bbs.web包下新建类:LoginCommand,代码如下package com.baobaotao.web;
public class LoginCommand {
private String userName;
private String password;
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
在同样的包下新建类:LoginController,代码如下package com.bbs.web;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.bbs.domain.User;
import com.bbs.service.UserService;
@Controller
public class LoginController{
@Autowired
private UserService userService;
@RequestMapping(value = "/index.html")
public String loginPage(){
return "login";
}
@RequestMapping(value = "/loginCheck.html")
public ModelAndView loginCheck(HttpServletRequest request,LoginCommand loginCommand){
boolean isValidUser = userService.hasMatchUser(loginCommand.getUserName(),loginCommand.getPassword(),2);
if (!isValidUser) {
return new ModelAndView("login", "error", "用户名或密码错误",2);
} else {
User user = userService.findUserByUserName(loginCommand.getUserName(),2);
user.setLastIp(request.getLocalAddr(),2);
user.setLastVisit(new Date(),2);
userService.loginSuccess(user,2);
request.getSession().setAttribute("user", user,2);
return new ModelAndView("main",2);
}
}
}
在Spring的配置文件applicationContext.xml中指定视图解析器
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:viewClass="org.springframework.web.servlet.view.JstlView"
p:prefix="/WEB-INF/jsp/"
p:suffix=".jsp" />
登录页面login.jsp
宝宝淘论坛登录" method="post">用户名:
密 码:
欢迎界面main.jsp
HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
宝宝淘论坛${user.userName},欢迎您进入论坛,您当前积分为${user.credits};