org.springframework.web.servlet.DispatcherServlet

<servlet>
      <servlet-name>springmvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <!-- 自定定义springmvc的配置文件包括文件名称,地址等 -->
      <init-param>
          <param-name>ContextConfigLocation</param-name>
          <param-value>classpath:spring-mvc.xml</param-value>
      </init-param>
  </servlet>
 
  <servlet-mapping>
      <servlet-name>springmvc</servlet-name>
      <url-pattern>*.do</url-pattern>
  </servlet-mapping>

 

我的理解:

只要是.do结尾(其他类似)的,都由springmvc来解决(去匹配Controller中的@RequestMapping)

1. Controller 的内容

package com.xt.controller;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import com.xt.model.Student;

@Controller
@RequestMapping("/student")
public class StudentController {

	private static List<Student> studentList = new ArrayList<Student>();

	static {
		studentList.add(new Student(1, "张三", 11));
		studentList.add(new Student(2, "李四", 12));
		studentList.add(new Student(3, "王五", 13));
	}

	@RequestMapping("/list")
	private ModelAndView list() {
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.addObject("studentList", studentList);
		modelAndView.setViewName("/student/list");
		return modelAndView;
	}
	
	/**
	 * 保存之前,主要是界面跳转
	 * @param id
	 * @return
	 */
	@RequestMapping("/preSave")
	private ModelAndView preSave(@RequestParam(value = "id", required = false) String id) {
		ModelAndView modelAndView = new ModelAndView();
		if (id != null) {
			Student student = studentList.get(Integer.parseInt(id) - 1);
			modelAndView.addObject("student", student);
			modelAndView.setViewName("/student/update");
		} else {
			modelAndView.setViewName("/student/add");
		}
		return modelAndView;
	}
	
	/**
	 * 保存
	 * @param student
	 * @return
	 */
	@RequestMapping("/save")
	private String save(Student student) {
		if (student.getId() != 0) {
			student.setAge(110);
			student.setName("张三2");
		} else {
			studentList.add(student);
		}
		return "redirect:/student/list.do";
	}
	
	/**
	 * 删除
	 * @param id
	 * @return
	 */
	@RequestMapping("/delete")
	private String delete(@RequestParam(value="id") int id) {
		studentList.remove(id-1);
		return "redirect:/student/list.do";
	}

}

2. 现在我需要触发preSave方法,我的链接就需要这样写

<a href="${pageContext.request.contextPath }/student/preSave.do">添加学生</a>

3. modelAndView.setViewName("/student/add");指的就是配置文件(我这里是spring-mvc.xml),prefix属性下的文件,后缀是jsp

<bean id="jspViewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/jsp/" />
		<property name="suffix" value=".jsp" />
</bean>

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值