【问题标题】:Spring MVC Using @RequestMapping on controller class with variableSpring MVC 在带有变量的控制器类上使用 @RequestMapping
【发布时间】:2015-03-29 06:33:42
【问题描述】:

我想编写整个控制器来处理实体。 我想在类级别声明实体的 id 并在每个方法上使用它。这是控制器类:

@Controller
@RequestMapping(value="/job/{j_id}/instance")
public class JobController extends GenericController {
    private final String htmlDir = "job/";

    @RequestMapping(value="{i_id}/open", method=RequestMethod.GET)
    public ModelAndView open(@PathVariable Long instance_id) {
        ModelAndView result = new ModelAndView(htmlDir  + "instance");
        result.addObject("instance_id", instance_id);

这里我想使用来自@RequestMapping的变量j_id

        return result;
    }
}

我能做到吗?请帮忙。请给我一些代码片段。

【问题讨论】:

  • 可以通过@PathVariable获取

标签: spring spring-mvc routes mapping request-mapping


【解决方案1】:

试一试

@Controller
@RequestMapping(value="/job/{j_id}/instance")
public class JobController  {
    private final String htmlDir = "job/";

    @RequestMapping(value="{i_id}/open", method=RequestMethod.GET)
    public ModelAndView open(@PathVariable(value="j_id") Long instance_id) {
        ModelAndView result = new ModelAndView(htmlDir  + "instance");
        result.addObject("instance_id", instance_id);
        System.out.println("Instance Id -------------> " + instance_id);
        return result;
    }

}

请注意“@PathVariable(value="j_id")”

要获取这两个变量,您可以按如下方式更改该行:

    @RequestMapping(value="{i_id}/open", method=RequestMethod.GET)
    public ModelAndView open(@PathVariable(value="j_id") Long jnstance_id, @PathVariable(value="i_id") Long instance_id) {
            .....
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    • 2011-06-27
    • 2012-01-10
    • 2013-02-26
    相关资源
    最近更新 更多