使用注解开发基于SpringMVC的web应用
程序员文章站
2022-06-02 15:20:21
...
(1).使用注解来开发基于springMVC的web应用
step1. 导包
step2. 添加spring配置文件
step3. 配置 DispatcherServle t控制器
上述步骤和之前一样
step4.编写处理器Controller
编写一个处理器(和之前的方式相比)
- 1.不用实现Controller接口
- 2.可以在处理器类中,添加多个方法,每一个方法处理一种类型的请求
- 3方法名不做要求,返回类型可以是ModelAndView,也可以是String
- 4.使用 @Controller ,将该处理器纳入容器管理(配置文件中不用在配置处理器了)
- 5.使用 @RequestMapping,告诉前段控制器(DispatcherServlet),请求路径与处理器的方法的对应关系(配置文件中不用在配置HandlerMapping了)
@Controller
public class Login {
@RequestMapping("login.do")
public String loingControler() {
System.out.println("登陆功能");
return "login";
}
}
strp5. 配置jsp文件,和之前的方式相同
step6. 重新配置springmvc配置文件
- 配置扫描器
- 配置Springmvc驱动
- 配置试图解析器
<!-- 配置扫描器 -->
<context:component-scan
base-package="controller"></context:component-scan>
<!-- 配置mvc驱动 -->
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 配置地址解析 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
注意:@RequestMapping 注解也可以添加到类的前面,用法相同
(2).读取请求参数值
通过 HttpRequestServlet 来读取参数值,具体用法和之前jsp中一样
通过注解 @RequestParam 注解,如下:
- jsp
- 处理器中的写法:
当获取参数值原jsp中的name属性值与当前定义的接受值得名称不一致 的时候,需要使用 @RequestParam 注解
使用javabean封装请求参数
- step1. 写一个java类(必须编写set和get方法)
package controller;
public class AdminParam {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "AdminParam [username=" + username + ", password=" + password + "]";
}
}
- step2.编写jsp
- step3. 编写处理器
/**
* 第三种传值方式
*将请求参数封装成一个javaBean的方式
* @param req
* @return
*/
@RequestMapping("/toLogin3.do")
public String toLogin3(AdminParam ap) {
/*
* ModelAndView有两个构造器
* (1)MoDelAndView(String viewName)
* viewName是视图名
* (2)MoDelAndView(String viewName,Map data),Map用于封装处理的结果
*/
System.out.println("name:"+ap.getUsername()+";pw:"+ap.getPassword());
return "success";
}
(3).使用页面传值
第一种方式 request
a.编写处理器
b.编写 jsp
页面传值第二种方式 ModelAndView
将数据先锋装到ModelAndView对象里面,然后将该对象作为方法的返回值
/**
* 向页面传值的第二种方式
* @param ap
* @param request
* @return
*/
@RequestMapping("/toLogin5.do")
public ModelAndView toLogin5(AdminParam ap) {
String username=ap.getUsername();
String password=ap.getPassword();
//构造ModelMap对象
HashMap<String, Object> data = new HashMap<String ,Object>();
// 相当于:request.setAttribute("username", username);
data.put("username", username);
//构造ModelAndView对象
ModelAndView mav = new ModelAndView("index");//index即jsp文件
System.out.println("login5--"+"name:"+ap.getUsername()+";pw:"+ap.getPassword());
//SpringMVC默认使用转发
return mav;
}
第三种使用ModelMap
/**
* 想页面传值的第三种方式
* 使用ModelMap
* @param ap
* @return
*/
@RequestMapping("/toLogin6.do")
public String toLogin6(AdminParam ap,ModelMap mm) {
String username=ap.getUsername();
String password=ap.getPassword();
System.out.println("login6--"+"name:"+ap.getUsername()+";pw:"+ap.getPassword());
//相当于request.setAttribute()
mm.addAttribute("username",username);
//SpringMVC默认使用转发
return "index";
}
第四种,使用session
/**
* 向页面传值的第四种方式
* 通过session
* @param ap
* @param mm
* @return
*/
@RequestMapping("/toLogin7.do")
public String toLogin7(AdminParam ap,HttpSession session) {
String username=ap.getUsername();
String password=ap.getPassword();
System.out.println("login6--"+"name:"+ap.getUsername()+";pw:"+ap.getPassword());
//相当于request.setAttribute()
session.setAttribute("username", username);
//SpringMVC默认使用转发
return "index";
}
(4).重定向
如果方法的返回值是String
c `return “redirect:toIndex.do”;`
如下,让最后跳转到index界面时的地址发生变化
@RequestMapping("/index.do")
public String loingControler() {
System.out.println("登陆功能");
return "login";
}
@RequestMapping("/toLogin8.do")
public String toLogin8(AdminParam ap,HttpSession session) {
System.out.println("login8()");
return "redirect:toIndex.do";
}
@RequestMapping("toIndex.do")
public String toIndex() {
System.out.println("toIndex()");
return "index";
}
如果方法的返回值是ModelAndView
RedirectView rv = new RedirectView(“toIndex.do”); return new
ModelAndView(rv);
@RequestMapping("/toLogin9.do")
public ModelAndView toLogin9(AdminParam ad,HttpSession session) {
String username=ad.getUsername();
session.setAttribute("usernme", username);
System.out.println("login9()");
RedirectView rv = new RedirectView("toIndex.do");
return new ModelAndView(rv);
}
上一篇: Springmvc的注解开发与封装参数
推荐阅读
-
使用ASP.NET Web API和Web API Client Gen使Angular 2应用程序的开发更加高效
-
使用Ruby on Rails快速开发web应用的教程实例
-
基于Swift的iOS应用程序开发:使用UIImagePickerController调取摄像头进行拍照
-
基于PHP Web开发MVC框架的Smarty使用说明
-
[书籍精读]《基于MVC的JavaScript Web富应用开发》精读笔记分享
-
基于hi-nginx的web开发(python篇)——使用jinja2模板引擎
-
基于MVC4+EasyUI的Web开发框架之附件上传组件uploadify的使用
-
基于MVC4+EasyUI的Web开发框架之附件上传组件uploadify的使用
-
FlaskWeb开发:基于Python的Web应用开发实战
-
使用AJAX进行WEB应用程序开发的方法