SpringMVC 一个controller多个方法

时间:2022-07-25 20:04:06
springMVC中,controller继承MultiActionController后,便可一个controller编写多个方法,通过方法名进行区分程序到底访问哪个方法。但是有个问题,就是每个controller都需要添加这么个属性“  <property name="methodNameResolver">
   <ref bean="methodNameResolver"/>”才能成功。 controller多了之后就比较烦,每个controller都需要去添加这行重复的代码。请问有什么办法可以统一设置不?

10 个解决方案

#1



@Controller
@RequestMapping("/commonController")
public class CommonController {
/**
 * Logger for this class
 */
private static final Logger logger = Logger.getLogger(CommonController.class);

@Resource
private BookingServiceI bookingService;


@RequestMapping("/toCommon")
public String toCommon() {
return "common/booking";
}

@RequestMapping("/find/{col}/{val}")
public String find(@PathVariable("col") String col, @PathVariable("val") String val,Model model) {
List<Booking> books = bookingService.findBookingsByM_bl_noOrCont_no(col, val);
model.addAttribute("books", books);
model.addAttribute("col", col);
model.addAttribute("val", val);
return "common/booking";
}
}

你 何必那么辛苦呢, 这样写多方便,只要配置扫描就行了

#2


引用 1 楼 qq_15654157 的回复:

@Controller
@RequestMapping("/commonController")
public class CommonController {
/**
 * Logger for this class
 */
private static final Logger logger = Logger.getLogger(CommonController.class);

@Resource
private BookingServiceI bookingService;


@RequestMapping("/toCommon")
public String toCommon() {
return "common/booking";
}

@RequestMapping("/find/{col}/{val}")
public String find(@PathVariable("col") String col, @PathVariable("val") String val,Model model) {
List<Booking> books = bookingService.findBookingsByM_bl_noOrCont_no(col, val);
model.addAttribute("books", books);
model.addAttribute("col", col);
model.addAttribute("val", val);
return "common/booking";
}
}

你 何必那么辛苦呢, 这样写多方便,只要配置扫描就行了


你在意个控制器里写十个百个方法都行

#3


引用 2 楼 qq_15654157 的回复:
Quote: 引用 1 楼 qq_15654157 的回复:


@Controller
@RequestMapping("/commonController")
public class CommonController {
/**
 * Logger for this class
 */
private static final Logger logger = Logger.getLogger(CommonController.class);

@Resource
private BookingServiceI bookingService;


@RequestMapping("/toCommon")
public String toCommon() {
return "common/booking";
}

@RequestMapping("/find/{col}/{val}")
public String find(@PathVariable("col") String col, @PathVariable("val") String val,Model model) {
List<Booking> books = bookingService.findBookingsByM_bl_noOrCont_no(col, val);
model.addAttribute("books", books);
model.addAttribute("col", col);
model.addAttribute("val", val);
return "common/booking";
}
}

你 何必那么辛苦呢, 这样写多方便,只要配置扫描就行了


你在意个控制器里写十个百个方法都行


嗯。但是我看别人的工程里controller面,没有用RequestMapping的方式,直接写的方法,也没有在配置文件为每个controller都配置methodNameResolver。不知道他是如何实现的。

#4


可以考虑一楼的方式,使用@RequestMapping注解来配置请求
前几天写个springmvc的小demo,发现自己也开始使用spring的注解了
一楼的方式,一个controller可以处理多个请求,注解的方式可以实现,配置文件肯定也是有办法的
楼主可以找一下

#5


引用 4 楼 magi1201 的回复:
可以考虑一楼的方式,使用@RequestMapping注解来配置请求
前几天写个springmvc的小demo,发现自己也开始使用spring的注解了
一楼的方式,一个controller可以处理多个请求,注解的方式可以实现,配置文件肯定也是有办法的
楼主可以找一下

我知道1楼的注解是一种方式。我想实现的是我3楼回复的那种效果。不知是怎么实现的?查了半天没找到资料

#6


引用 5 楼 LOVE_GG 的回复:
Quote: 引用 4 楼 magi1201 的回复:

可以考虑一楼的方式,使用@RequestMapping注解来配置请求
前几天写个springmvc的小demo,发现自己也开始使用spring的注解了
一楼的方式,一个controller可以处理多个请求,注解的方式可以实现,配置文件肯定也是有办法的
楼主可以找一下

我知道1楼的注解是一种方式。我想实现的是我3楼回复的那种效果。不知是怎么实现的?查了半天没找到资料


你想实现你说的那种 其实已经没必要了,那种非注解的方式在3.0,甚至以前的版本估计还用的比较多 ,往后的版本都会用注解的形似比较多的,因为注解方式是大势所趋的。

#7


我也喜欢用Annotation的方式,简单些。

#8


还是用注解吧。

#9


引用 6 楼 qq_15654157 的回复:
Quote: 引用 5 楼 LOVE_GG 的回复:

Quote: 引用 4 楼 magi1201 的回复:

可以考虑一楼的方式,使用@RequestMapping注解来配置请求
前几天写个springmvc的小demo,发现自己也开始使用spring的注解了
一楼的方式,一个controller可以处理多个请求,注解的方式可以实现,配置文件肯定也是有办法的
楼主可以找一下

我知道1楼的注解是一种方式。我想实现的是我3楼回复的那种效果。不知是怎么实现的?查了半天没找到资料


你想实现你说的那种 其实已经没必要了,那种非注解的方式在3.0,甚至以前的版本估计还用的比较多 ,往后的版本都会用注解的形似比较多的,因为注解方式是大势所趋的。
  嗯,我明白。但是想知道是如何实现的,这是发帖的初衷

#10


从网上找SpringMVC的注解资料,还可以看看视频,差不多就能理解了,一两句都说不明包

#1



@Controller
@RequestMapping("/commonController")
public class CommonController {
/**
 * Logger for this class
 */
private static final Logger logger = Logger.getLogger(CommonController.class);

@Resource
private BookingServiceI bookingService;


@RequestMapping("/toCommon")
public String toCommon() {
return "common/booking";
}

@RequestMapping("/find/{col}/{val}")
public String find(@PathVariable("col") String col, @PathVariable("val") String val,Model model) {
List<Booking> books = bookingService.findBookingsByM_bl_noOrCont_no(col, val);
model.addAttribute("books", books);
model.addAttribute("col", col);
model.addAttribute("val", val);
return "common/booking";
}
}

你 何必那么辛苦呢, 这样写多方便,只要配置扫描就行了

#2


引用 1 楼 qq_15654157 的回复:

@Controller
@RequestMapping("/commonController")
public class CommonController {
/**
 * Logger for this class
 */
private static final Logger logger = Logger.getLogger(CommonController.class);

@Resource
private BookingServiceI bookingService;


@RequestMapping("/toCommon")
public String toCommon() {
return "common/booking";
}

@RequestMapping("/find/{col}/{val}")
public String find(@PathVariable("col") String col, @PathVariable("val") String val,Model model) {
List<Booking> books = bookingService.findBookingsByM_bl_noOrCont_no(col, val);
model.addAttribute("books", books);
model.addAttribute("col", col);
model.addAttribute("val", val);
return "common/booking";
}
}

你 何必那么辛苦呢, 这样写多方便,只要配置扫描就行了


你在意个控制器里写十个百个方法都行

#3


引用 2 楼 qq_15654157 的回复:
Quote: 引用 1 楼 qq_15654157 的回复:


@Controller
@RequestMapping("/commonController")
public class CommonController {
/**
 * Logger for this class
 */
private static final Logger logger = Logger.getLogger(CommonController.class);

@Resource
private BookingServiceI bookingService;


@RequestMapping("/toCommon")
public String toCommon() {
return "common/booking";
}

@RequestMapping("/find/{col}/{val}")
public String find(@PathVariable("col") String col, @PathVariable("val") String val,Model model) {
List<Booking> books = bookingService.findBookingsByM_bl_noOrCont_no(col, val);
model.addAttribute("books", books);
model.addAttribute("col", col);
model.addAttribute("val", val);
return "common/booking";
}
}

你 何必那么辛苦呢, 这样写多方便,只要配置扫描就行了


你在意个控制器里写十个百个方法都行


嗯。但是我看别人的工程里controller面,没有用RequestMapping的方式,直接写的方法,也没有在配置文件为每个controller都配置methodNameResolver。不知道他是如何实现的。

#4


可以考虑一楼的方式,使用@RequestMapping注解来配置请求
前几天写个springmvc的小demo,发现自己也开始使用spring的注解了
一楼的方式,一个controller可以处理多个请求,注解的方式可以实现,配置文件肯定也是有办法的
楼主可以找一下

#5


引用 4 楼 magi1201 的回复:
可以考虑一楼的方式,使用@RequestMapping注解来配置请求
前几天写个springmvc的小demo,发现自己也开始使用spring的注解了
一楼的方式,一个controller可以处理多个请求,注解的方式可以实现,配置文件肯定也是有办法的
楼主可以找一下

我知道1楼的注解是一种方式。我想实现的是我3楼回复的那种效果。不知是怎么实现的?查了半天没找到资料

#6


引用 5 楼 LOVE_GG 的回复:
Quote: 引用 4 楼 magi1201 的回复:

可以考虑一楼的方式,使用@RequestMapping注解来配置请求
前几天写个springmvc的小demo,发现自己也开始使用spring的注解了
一楼的方式,一个controller可以处理多个请求,注解的方式可以实现,配置文件肯定也是有办法的
楼主可以找一下

我知道1楼的注解是一种方式。我想实现的是我3楼回复的那种效果。不知是怎么实现的?查了半天没找到资料


你想实现你说的那种 其实已经没必要了,那种非注解的方式在3.0,甚至以前的版本估计还用的比较多 ,往后的版本都会用注解的形似比较多的,因为注解方式是大势所趋的。

#7


我也喜欢用Annotation的方式,简单些。

#8


还是用注解吧。

#9


引用 6 楼 qq_15654157 的回复:
Quote: 引用 5 楼 LOVE_GG 的回复:

Quote: 引用 4 楼 magi1201 的回复:

可以考虑一楼的方式,使用@RequestMapping注解来配置请求
前几天写个springmvc的小demo,发现自己也开始使用spring的注解了
一楼的方式,一个controller可以处理多个请求,注解的方式可以实现,配置文件肯定也是有办法的
楼主可以找一下

我知道1楼的注解是一种方式。我想实现的是我3楼回复的那种效果。不知是怎么实现的?查了半天没找到资料


你想实现你说的那种 其实已经没必要了,那种非注解的方式在3.0,甚至以前的版本估计还用的比较多 ,往后的版本都会用注解的形似比较多的,因为注解方式是大势所趋的。
  嗯,我明白。但是想知道是如何实现的,这是发帖的初衷

#10


从网上找SpringMVC的注解资料,还可以看看视频,差不多就能理解了,一两句都说不明包