springBoot 后台方法进行重定向
以下内容只是本人在开发中为加强记忆,而写
在开发中,总是会遇到各种各样的跳转的问题,有些是需要在前端页面中直接执行,比如:添加新数据对象,返回上一级,查看详情这一类的,都可以通过在页面中通过a标签
或者是JS中的window.location.href(xxxx)这样的方式来实现,加入需要带参数的,就是一些比较常规的写法,用"?"后拼接参数来实现就好了.
比如:
<a th:href="@{'方法路径?参数=' + ${参数值}}">操作名</a>//thyme leaf 跳转写法 <a th:onclick="'javascript:JS方法名('+${JS方法参数值}+')'">操作名</a>//当参数值是通过thymeleaf框架获取到,且需要作为JS方法传递参数值时.
function deleteProject(projectId){
util.dialog.confirm("是否删除",1,function(){
window.location.href="/admin/resource/projectList/deleteProjectByProjectId?projectId="+projectId;
},function(){
return false;
});
}
//条件查询时,可作为传递参数方法使用
$("#searchButton").click(function() {
var projectType = $("#projectType").val();
var projectName = $("#projectName").val();
var param="?";
if(projectType > 0 && projectType != null) {
param += "projectType="+projectType
}
if(projectName.length > 0) {
param += "&projectName="+projectName;
}
window.location.href = "/admin/resource/projectList"+param;
});
当然,上面条件查询时的写法是最基础的写法,还有一种方法是,可以把参数压缩动态传值.后台统一解析.但是个人感觉两者原理上差不多.就是这种写法比较麻烦.代码量比较大.
上面是JS页面,跳转的一些基本方法.
后台页面跳转,也就是重定向,记得用JSP---servlet的时,可以用response.sendRedrict(xxxx);的方式,可以完成重定向.可是那样每个需要重定向的方法中都需要写那些生命代码.
这里也是从网上找到几个适用的方法,来记录一下:
1.直接返回值中加重定向:"redirect:要访问的网址";
public String updateOrAddProject() {
return "redirect:要访问的相对网址或绝对网址?参数名="+参数值;
}
2.适用modelAndView对象来进行,
public ModelAndView findProjectPage() { ModelAndView modelAndView = new ModelAndView(需要跳转的页面路径); XXXXXXX return modelAndView; }
3.就是继承HttpServlet类,声明HttpServletResponse 来完成后台的重定向.