1.Spring框架下页面跳转心得:
JobDetailController中部分代码:
@Controller
@RequestMapping("jobDetail")
public class JobDetailController extends BaseCRUDController<JobDetail, String> {
@Autowired
private IndustryService industryService;
@Autowired
private EducationService educationService;
@Autowired
private UserInfoService userInfoService;
private JobDetailService getJobDetailService() {
return (JobDetailService) baseService;
}
/**
* @param m
* @return
*/
@RequestMapping(value = { "" })
public String jobDetailIndex(Model m,HttpSession session) {
//方法体
return saveReturnViewName();
}
/**
* @param jdId
* @return
*/
@RequestMapping(value="/updateJobDetail" ,method = RequestMethod.POST)
public String jobDetailUpdate(Model m,JobDetail jobDetail,HttpSession session) {
//调用相应的Service,然后service再调用相应的mapper执行相应的操作
return "redirect:/jobDetail";
}
@Override
protected String saveReturnViewName() {
return "/enterprise/jobDetail/saveJobDetail";
}
看到上述代码,可以帮我们理解
url请求、后台controller方法(eg:上面的)、页面跳转(方法返回的return语句)
三者之间的对应关系。
如果项目启动之后,我在浏览器的地址栏中输入http://localhost:8080/863soft/jobDetail,那么spring框架会根据标签@RequestMapping来调用
public String jobDetailIndex(Model m,HttpSession session){......}
方法。有人会问为什么会调用执行这个方法呢?因为这个方法@RequestMapping(value = { "" })中的value为空,则自动执行此方法。或许有人接着问:这个方法执行完毕之后,跳转到什么地方呢?别担心,这个方法的return会帮我们们跳转到我们想去的地方,return后面接的是 目标jsp页面所在的路径字符串。
比如,执行完方法后我们跳转到 "/enterprise/jobDetail/saveJobDetail"
这样我们再执行完相应的操作后就能跳转到相应的jsp页面中去了。是不是很简单!
说明:
不同的请求url,Spring会调用不同的方法进行处理:(其中的诀窍就在于标签@RequestMapping)
http://localhost:8080/863soft/jobDetail<------------->jobDetailIndex方法
http://localhost:8080/863soft/jobDetail/updateJobDetail<------------->jobDetailUpdate方法