java – 在Spring MVC中没有参数的@RequestMapping

前端之家收集整理的这篇文章主要介绍了java – 在Spring MVC中没有参数的@RequestMapping前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在学习Spring MVC时试图理解我的项目代码.

在Spring中,@ RequestMapping注释需要参数.例如,

@H_502_7@@RequestMapping(value="/something",method=RequestMethod.POST) @RequestMapping(value="/index.html",method=RequestMethod.GET) @RequestMapping("/index") @RequestMapping(params="command=GETINFO")

我的项目使用注释,它不使用任何XML进行映射.我有一个以下的控制器结构.

@H_502_7@@Controller public class RuleStepController { private static final String ATTRIBUTE_BRANCH = "branch"; private static final String ATTRIBUTE_EDIT_FORM = "editForm"; ................. @Autowired private RuleStepService ruleStepService; @Autowired private PopulationDao populationDao; @RequestMapping public void ruleStepEntForm(Long populationId,ModelMap model) { ..... editForm.setStepEnt(stepDto); } @RequestMapping public void ruleStepOrgCount(RuleStepOrgSearchForm searchForm,ModelMap model){ ....... model.addAttribute("searchForm",searchForm); } @RequestMapping public String ruleStepMgrForm() { logger.debug(String.format("ruleStepMgrForm")); return "forward:/employee/employeeSearchForm.view?relationshipId=0&roleId=0&formId=stepMgr"; }

我想了解@RequestMapping在没有任何参数的情况下有什么意义?

@AutoWired的用途是什么?

最佳答案
>使用注释@RequestMapping,您可以通过多种方式绑定请求参数:

URI模板模式,使用注释@PathVariable

@H_502_7@@RequestMapping(value="/owners/{ownerId}",method=RequestMethod.GET) public String findOwner(@PathVariable String ownerId,Model model) { Owner owner = ownerService.findOwner(ownerId); model.addAttribute("owner",owner); return "displayOwner"; }

请求参数和标头值

@H_502_7@@Controller @RequestMapping("/owners/{ownerId}") public class RelativePathUriTemplateController { @RequestMapping(value = "/pets/{petId}",method = RequestMethod.GET,params = "myParam=myValue") public void findPet(@PathVariable String ownerId,@PathVariable String petId,Model model) { // implementation omitted } }

使用@RequestParam

@H_502_7@@Controller @RequestMapping("/pets") @SessionAttributes("pet") public class EditPetForm { @RequestMapping(method = RequestMethod.GET) public String setupForm(@RequestParam("petId") int petId,ModelMap model) { Pet pet = this.clinic.loadPet(petId); model.addAttribute("pet",pet); return "petForm"; } }

使用@RequestBody注释映射请求正文

@H_502_7@@RequestMapping(value = "/something",method = RequestMethod.PUT) public void handle(@RequestBody String body,Writer writer) throws IOException { writer.write(body); }

>自动装配

@H_502_7@@Autowired private RuleStepService ruleStepService;

Spring Container之前创建了bean ruleStepService.如果你需要在你的类中使用这个bean,你只需要如上所述声明,容器会将bean注入你的类.你不需要声明像;

@H_502_7@RuleStepService ruleStepService =new RuleStepService().

Container将找到bean名称ruleStepService或bean具有类型RuleStepService(基于配置中的策略)

猜你在找的Spring相关文章