控制器(Controller):负责处理由DispatherServlet分发的请求,它把用户请求的数据经过业务处理层之后封装成一个model,然后再把该Model返回给对应的View进行展示。(这里采用非注解地方式来了解springmvc中的控制器)

springmvc提供多种控制器:

1.AbstractController,最简单的控制器。

继承AbstractController,实现handleRequestInternal方法即可。

2.SimpleFormController

参数Object formbean其实他就是和表单属性打交道的一个对象,也即是说表单参数会依据一定的规则填充给form对象。

(1).继承SimpleFormController类;

(2).构造器中调用setCommandClass方法绑定命令对象(这里时user类);

(3).转换formbean为User类进行业务逻辑操作。

下面来看一个简单的例子:

前端jsp代码:


------------------SimpleFormController------------------------
	<form action="simple" method="post">
		username:<input  name="name"/><br>
		age:<input name="age"/><br>
		<input type="submit" value="提交" />
</form>


为一个简单的表单,下面时 springmvc 的配置文件中的代码:


<!-- 配置beanNameUrlHandlerMapping  -->
	<bean id="beanNameUrlHandlerMapping"
		class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
		<!-- 设置优先级,值越小,优先级越高 -->
		<property name="order" value="1"></property>
		</bean>
	<!-- 对于不需要处理只需要做一个转发可以用下面方式实现 -->
	<bean name="/index"
		class="org.springframework.web.servlet.mvc.ParameterizableViewController">
		<!-- 简单的返回视图名,通过viewName的value值login直接调用视图解析器,转发到login.jsp -->
		<property name="viewName" value="index"></property>
	</bean>
	<bean name="/simple" class="com.springmvc.controllers.SimpleCotroller"></bean>
	<!-- 视图解析器 -->
	<bean id="jspViewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<!-- 前缀 -->
		<property name="prefix" value="/WEB-INF/jsp/" />
		<!-- 后缀 -->
		<property name="suffix" value=".jsp" />
</bean>



接着写对应

simple 请求的一个 controller :


public class SimpleCotroller extends SimpleFormController {
	
	public SimpleCotroller() {
		//设置formBean的类型
		setCommandClass(User.class);
	} 
	
	@Override
	protected ModelAndView onSubmit(Object command) throws Exception {
		//获取传入的参数对应的formbean
		User user = (User) command;
		System.out.println(user);
		ModelAndView mav = new ModelAndView();
		//设置view
		mav.setViewName("simple");
		//设置model
		mav.addObject("user",user);
		return mav;
	}
}



U

ser 对象中只包含两个属性: String name 和 int age.提供他们的set和get方法

实现的效果:

java常用版本控制器有哪些 javacontroller控制器_simpleformcontroller


点击提交后,显示到前台页面:

java常用版本控制器有哪些 javacontroller控制器_spring mvc_02

这里插入一下前台的取值方式:


<h1>user:${user.name}</h1>
<h1>age:${user.age}</h1>