加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 01:32:50 所属栏目:大数据 来源:网络整理
导读:我在学习Spring MVC时试图理解我的项目代码. 在Spring中,@ RequestMapping注释需要参数.例如, @RequestMapping(value="/something",method=RequestMethod.POST)@RequestMapping(value="/index.html",method=RequestMethod.GET)@RequestMapping("/index")@Req

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

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

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

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

@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

@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";
}

请求参数和标头值

@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

@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注释映射请求正文

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

>自动装配

@Autowired
private RuleStepService ruleStepService;

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

RuleStepService ruleStepService =new RuleStepService(). 

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读