以下內容只是本人在開發中為加強記憶,而寫
在開發中,總是會遇到各種各樣的跳轉的問題,有些是需要在前端頁面中直接執行,比如:添加新數據對象,返回上一級,查看詳情這一類的,都可以通過在頁面中通過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 來完成后台的重定向.