SpringMVC学习之控制器—simpleformcontroller

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

springmvc提供多种控制器:

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

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

2.SimpleFormController

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

(1).继承SimpleFormController类;

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

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

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

前端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方法

实现的效果:



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


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

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

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


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值