Spring mvc 的controller

package com.yuanhongfei.controller;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.servlet.ModelAndView;

import com.yuanhongfei.entity.UserInfo;
import com.yuanhongfei.service.UserInfoService;

/***
 * '@Controller' 为 使用spring mvc方式而不使用struts来编写MVC思想中的Controller层。
 * '@Controller' 的类 spring会自动扫描并注册,并且作为控制器(靠springmvc-context.xml中配置<annotation-driven />来扫描这种类)
 *
 *  作为Controller的类的其中面向页面请的的方法中的参数有很多,且都是可选参数,可根据需要来选择,有:
 *  1.@PathVariable String id 为 如果 '@RequestMapping'的value写的是 /{id}/{name} 等 此写法可以直接获取传过来的{id}的值并赋给id
 *  2.@ModelAttribute("entity") Entity entity 将页面传入的参数自动封装到Entity类中,需页面的表单name与类中的属性名一致
 *  3.HttpServletRequest request, HttpServletResponse response 获取request和response
 *  4.@RequestParam("a") String a 可以单个接受页面的参数a
 *  5. Model model 可以model可以将一些对象进行addAttribute操作,然后到页面可以获取这些对象。
 *
 * @author HOFEY
 */

/**在做添加和修改时候,应该先跳转到添加或修改的页面
 * (也就是说先写跳转的controller,而修改的时候应该获取原来实体的id,然后调用根据id查询实体的service方法,将实体属性信息显示到更新页面,提交的时候也是用add方法)
 * user controller
 * @author HOFEY
 *
 */
@Controller
@RequestMapping("user")
//如果 controller中用到@RequestMapping("user"),那么要访问此controller就必须在路径中加上user
public class UserController {
	//@Autowired
	@Resource
	//@Autowird自动注入默认按类型注入,推荐使用@Resource按名称注入
	private UserInfoService userService;
	
	public UserInfoService getUserService() {
		return userService;
	}
	public void setUserService(UserInfoService userService) {
		this.userService = userService;
	}
	@RequestMapping(value="/list",method=RequestMethod.GET)
	public String queryAllUserInfo(Model model){
		List<UserInfo> userinfoList = userService.queryAllUserInfo();
		model.addAttribute("userinfolist", userinfoList);
		return "userInfoList";
	}
	/**
	 * 跳转到添加页面
	 * @return
	 */
	@RequestMapping(value="/toAddUserPage")
	public String toAddUserPage(){
		return "addUserPage";
	}
	/**
	 * 
	 * 添加controller
	 * @param userinfo
	 * @return
	 */
	@RequestMapping(value="/addUser",method=RequestMethod.POST)
	//@ModelAttribute("entity") Entity entity 将页面传入的参数自动封装到Entity类中,需页面的表单name与类中的属性名一致
	public ModelAndView addUser(@ModelAttribute("userinfo") UserInfo userinfo){
		userService.addUser(userinfo);
		return new ModelAndView("redirect:/user/list");
		//让跳转到list界面直接显示 而不是跳到成功页面   重定向 redirect:/user/list
	}
	/**
	 * 
	 * 跳转到更新用户信息页面
	 * controller
	 */
	@RequestMapping(value="/{id}")
	/**
	 * 
	 * @param id
	 * @RequestParam("id") String id 获取页面传过来的值
	 * @param Model model 可以model可以将一些对象进行addAttribute操作,然后到页面可以获取这些对象
	 * @return
	 */
	public String toUpdateUserPage(@PathVariable String id,Model model){
		UserInfo userInfo = userService.queryUserById(id);
		model.addAttribute("userInfo", userInfo);
		return "updateUserPage";
	}
	
	
	/**
	 * 
	 * @PathVariable String id   参数获取方法
	 * @RequestMapping(value="/{id}")
	 * public String toUpdateUserPage(@PathVariable String id,Model model){
		System.out.println("跳转到更新页面上的参数值是"+id);
		UserInfo userInfo = userService.queryUserById(id);
		model.addAttribute("userInfo", userInfo);
		System.out.println("跳转到更新页面获取到的性别是"+userInfo.getSex());
		return "updateUserPage";
	}
	 * 	@RequestParam("id") String id   参数获取方法
		@RequestMapping(value="toUpdateUserPage")
	public String toUpdateUserPage(@RequestParam("id") String id,Model model){
		UserInfo userInfo = userService.queryUserById(id);
		model.addAttribute("userInfo", userInfo);
		System.out.println("跳转到更新页面获取到的性别是"+userInfo.getSex());
		return "updateUserPage";
	}
	*/
	/**
	 * 更新用户信息Controller
	 * 
	 */
	@RequestMapping(value="updateUser", method=RequestMethod.POST)
	public String updateUser(@ModelAttribute("userinfo") UserInfo userinfo){
		if(userinfo.getId()!=null){
		userService.addUser(userinfo);
		//重定向到list页面
		return "redirect:/user/list";
		}else
			return "error";
	}
	/**
	 * 删除用户
	 * @param userInfo
	 * @return
	 */
	@RequestMapping("deleteUser")
	public String deleteUser(UserInfo userInfo){
		userService.deleteUser(userInfo);
		return "redirect:/user/list";
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
水利改革发展 国政府高度重视水利建设,将水利作为国家基础设施建设的优先领域。政策文件强调了防洪抗旱、水资源管理、水环境保护和水生态修复等方面的全面要求,推动了水利信息化的发展。 智慧水利建设目标 智慧水利的建设目标是通过数据共享、应用惠民、应急预警等手段,打破信息孤岛,提升应急抢险协作能力,加强水利数据在惠民信息化方面的应用。同时,提出了共享联动化、解决信息安全问题、提高水利信息科技创新能力等目标。 智慧水利建设模式 智慧水利的建设模式包括构建统一平台、数据心、信息整合平台、决策支持系统等,以实现水利、海洋、环保等政府部门和公众的信息共享和服务。此外,还包括了云计算虚拟化、网络传输、采集工程等多个方面的技术应用。 智慧水利应用实例 智慧水利的应用实例包括视频水文工程监控、多要素一体化检测设备、汛情预警智能联动、三防决策指挥、河长综合信息展示等。这些应用通过集成GIS、互联网地图服务、物联网设备等技术,实现了对水利设施的实时监控、数据分析和应急响应。 成功案例与展望 智慧水利的成功案例展示了通过视频监控、预警信息发布、移动办公信息APP等技术,有效提升了灾害应对能力、水资源管理和河长制的实施效果。这些案例表明,智慧水利的建设不仅提高了水利管理的效率和水平,也为未来的水利信息化发展提供了方向。
Spring MVC是一种基于MVC(Model-View-Controller)设计模式的Web框架,它可以帮助我们快速地开发Web应用程序。在Spring MVCController是控制器的核心组件,它负责接收用户请求并决定如何处理这些请求。 在Spring MVC,我们可以通过编写Controller类来实现请求的处理。在Controller,我们可以定义多个方法,每个方法对应处理一个具体的请求。这些方法通常使用注解来标识它们应该处理哪些请求。 例如,我们可以使用@Controller注解来标识一个类为Controller,并使用@RequestMapping注解来标识一个方法应该处理哪些请求。下面是一个简单的Controller类的示例: ``` @Controller @RequestMapping("/hello") public class HelloController { @RequestMapping("/world") public ModelAndView helloWorld() { String message = "Hello World, Spring MVC!"; return new ModelAndView("hello", "message", message); } } ``` 在上面的示例,我们使用@Controller注解将HelloController类标识为Controller,并使用@RequestMapping注解将该类处理的请求路径设置为“/hello”。我们还使用@RequestMapping注解将helloWorld方法标识为处理“/hello/world”请求的方法。该方法返回一个包含“Hello World, Spring MVC!”消息的ModelAndView对象。 需要注意的是,Controller类的方法可以返回不同类型的结果。除了ModelAndView之外,还可以返回String、void、HttpEntity、ResponseEntity等类型的结果。这些结果将由Spring MVC框架进行处理,并将相应的内容返回给客户端。 总的来说,Spring MVCController是Web应用程序的核心组件之一,它可以帮助我们快速地开发功能强大、易于维护的Web应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值