spring mvc controller类方法的示例

package com.zy.controller;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
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.bind.annotation.SessionAttributes;
import org.springframework.web.bind.support.SessionStatus;
import org.springframework.web.servlet.ModelAndView;

import com.zy.model.User;

@Controller
@RequestMapping("/user")
@SessionAttributes("user")
public class UserControllers {


//url占位符,绑定到入参中。最好在pathvariable中显示指定入参。
//requestmapping请求URL,方法get/post,参数params,请求头headers
@RequestMapping(value="/{userId}",method=RequestMethod.POST,params="userId",headers="content-type=text/*")
public ModelAndView showDetail(@PathVariable("userId") String userId)
{
	ModelAndView mav=new ModelAndView();
	mav.setViewName("user/showDetail");
//	mav.addObject("user",userService.getUserById());
	return mav;
}
//几种典型的处理方法签名
/*@RequestMapping(value="/param")
1.public String handParam(@RequestParam("userName") String userName)
{
	//字符串返回逻辑视图名
	return "success";
}*/
/*@RequestMapping(value="/param")
 * 将cookie值和报文头属性绑定到参数中
2.public  ModelAndView handleCookie(@CookieValue("JSESSIONID") String sessionId,@RequestHeader("Accept-Language") String al))
{
	ModelAndView mav=new ModelAndView();
	mav.setViewName("success");
	mav.addObject("user",new User());
	return mav;//modelandview 返回模型和逻辑视图名
}*/

/*@RequestMapping(value="/param")
 *请求参数按照名称匹配的方式绑定到user属性中
3.public String handlerUser(User user)
{
	return "success";
}*/

/*@RequestMapping(value="/param")
 * 直接将http请求对象传递给方法
public String handlerHttp(HttpServletRequest request)
{
	return "success";
}*/

/*@RequestMapping(value="/param")
 * 添加servlet api类 response返回值设置为void
4.public void handleServlet(HttpServletResponse response)
{
	response.addCookie(new Cookie("name","zy"));
}
使用httpsession入参
5.public String handleServlet(HttpSession session)
{
	session.setAttribute("sessionId","1234");
	return "success";
}*/

//处理数据模型
//方式1
@ModelAttribute("user")
public User getUser()
{
	User user=new User();
	user.setUserId("1");
	return user;
}
//会先调用上面的方法,然后合并填充user
public String getUserId(@ModelAttribute("user") User user)
{
	user.setUserId("1");
	return "success";
}

//方式2请求对应的隐含模型对象传递给modelmap,通过它可以访问模型中的数据
@RequestMapping(value="/model")
public String handleModle(ModelMap modelMap)
{
	modelMap.addAttribute("test", "ha");
	User user=(User)modelMap.get("user");
	user.setUserId("1");
	return "/user/showUser";
}

//方式3 多个请求共享模型属性数据,在控制器类前标注SessionAttributes
//SessionAttributes("")自动将处理器中任何处理方法中名为user的模型属性透明地存储到HttpSession中
public String handleModle2(ModelMap modelMap,SessionStatus sessionStatus)
{
	User user=(User)modelMap.get("user");
	if(user!=null)
	{
		user.setUserId("1");
		sessionStatus.setComplete();
	}
	return "success";
}





}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring MVC是一种基于MVC(Model-View-Controller)设计模式的Web框架,它可以帮助我们快速地开发Web应用程序。在Spring MVC中,Controller是控制器的核心组件,它负责接收用户请求并决定如何处理这些请求。 在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、付费专栏及课程。

余额充值