Jsp呼叫Action的幾種方法
由於最近剛剛開始接觸Spring+SpringMVC+mybatis的SSM框架來開發Web應用,頁面使用的是Jsp。
所以經常會從Jsp頁面呼叫到後端Java中Action類,因此希望總結一下,下次遇到類似問題不用再翻程式碼去檢視:
1. 最常見的form表單提交:
一般情況下,比如在登陸介面,因為主要只涉及到登陸的功能,我們會使用form表單提交的方式來向後端Action傳值以及跳轉頁面
舉例:
前端Jsp頁面中的表單提交方法:
<form action="<%=basePath%>login/isLogin" method="post"> <input type="text" name="username"/> <input type="text" name="password"/> <input class="continue" type="submit" value="登入"> </form>
後端Java中Action類的接收方法:
@RequestMapping("/login") public class LoginAction { @RequestMapping(value = "/isLogin", method = RequestMethod.POST) public ModelAndView isLogin(HttpServletRequest request, HttpSession session, User user) { if (user == null) { logger.error("could not find user"); // return error page } ModelAndView mv = new ModelAndView(); User u = userService.getUser(user); if (u == null) { mv.addObject("msg", "使用者名稱和密碼不匹配 或 此使用者不存在"); mv.setViewName("/index.jsp"); return mv; } mv.setViewName("/Successful.jsp"); session.setAttribute("userLogin", u); return mv; }
以上的案例的請求是POST請求,由於在後端Java類中存在user的VO類,其中也包括了name和password,所以能夠直接獲取到User類。
2. 通過<a href="#"></a>的方式呼叫後端Java中的Action類
如果頁面中需要對某個物件進行比較詳細的處理或者查詢,我們也可以使用<a href="#"></a>的方式進行頁面跳轉和傳值
舉例:
前端Jsp頁面的<a href="#"></a>方法:
後端Java中Action類的接收方法:<a href="<%=basePath%>inquiry/Detail/${uniq_code}" title="Detail">Detail</a>
@RequestMapping("/inquiry")
public class TxnInqAction {
@RequestMapping(value = "Detail/{uniq_code}", method = RequestMethod.GET)
public ModelAndView detailList(HttpServletRequest request, HttpSession session,
@PathVariable("uniq_code") String uniqCode) {
ModelAndView mv = new ModelAndView();
if (uniqCode == null) {
mv.setViewName("pages/TxnInq_list.jsp");
}
………………
mv.setViewName("pages/TxnDetail.jsp");
return mv;
}
}
通過<a href="#"></a>方法來呼叫後端Java Action類的請求是Get請求,一般性用的比較少因為Get請求可以直接從URL中看到傳的真實引數
3. 通過JS的方法呼叫後端Java中的Action類
如果前端同一個頁面有多個POST請求需要傳參和跳轉,可以使用該方法。
舉例:
前端JS方法呼叫:
<a href="#" onClick="deleteAuth(${userId})" title="Delete">刪除人員</a>
<script type="text/javascript">
function deleteAuth(authId)
{
$.confirm({
title: "請確認",
content: "是否刪除此使用者?",
buttons: {
確定: function () {
document.dpage.action="<%=basePath%>user/delete/"+authId;
document.dpage.submit() ;
},
取消: function () {
}
},
useBootstrap: false,
});
}
</script>
後端Java Action類中的接收方法:@RequestMapping(value = "/delete/{userid}", method = RequestMethod.POST)
public ModelAndView deleteUser(HttpServletRequest request, HttpSession session,
@PathVariable("userid") String userId) {
ModelAndView mv = new ModelAndView();
userService.userSessionTransfer(session, mv, logger);
userService.deactivateUser(userId);
List<User> userList = userService.findAll();
mv.addObject(CharacterCfg.USER.USERLIST, userList);
mv.setViewName("pages/user_cfg/user_list.jsp");
return mv;
}
該方法與方法2的區別就只是在於一個是GET請求一個是POST請求。
目前只使用到了以上3種方式,如有新用方法會不斷新增。
相關推薦
Android延時執行呼叫的幾種方法(轉)
From: http://blog.sina.com.cn/s/blog_46726d2401015t8q.html 一、開啟新執行緒 new Thread(newRunnable() { publicvoidrun() { Thread.sle
Unity解決指令碼相互呼叫的幾種方法
1.直接引用 最基本呼叫另一指令碼的辦法。通常專案中使用在一個預製體的內部,該模組完全由自己負責基本不對外耦合,操作方式簡單在Inspector中拖拽即可。 優點: 簡單高效,編輯器中直接可見。 缺點: 指令碼間強耦合、一個指令碼的變化可能帶來鏈式反應、也容易出現
Jsp呼叫Action的幾種方法
由於最近剛剛開始接觸Spring+SpringMVC+mybatis的SSM框架來開發Web應用,頁面使用的是Jsp。 所以經常會從Jsp頁面呼叫到後端Java中Action類,因此希望總結一下,下次遇到類似問題不用再翻程式碼去檢視: 1. 最常見的form表單提交:
jsp值傳到後臺Struts2中的action三種方法
login orm end 通過 實例化 eth log 名稱 選擇 Action接收表單傳遞過來的參數有3種方法: 如,登陸表單login.jsp: 1 <form action="login" method="post" name="form1"> 用戶名
jsp下頁面跳轉的幾種方法小結
1. RequestDispatcher.forward() 在伺服器端起作用,當使用forward()時,Servlet engine傳遞HTTP請求從當前的Servlet或者是JSP到另外的一個Servlet、JSP 或普通HTML檔案,也即你的form提交至a.js
a標籤中href呼叫js的幾種方法
我們常用的在a標籤中有點選事件: 1. a href=”javascript:js_method();” 這是我們平臺上常用的方法,但是這種方法在傳遞this等引數的時候很容易出問題,而且javascript:協議作為a的href屬性的時候不僅會導致不必要的觸發window.onbeforeun
Python呼叫shell命令的幾種方法(在新程序中執行shell命令)
有時候難免需要直接呼叫Shell命令來完成一些比較簡單的操作,比如mount一個檔案系統之類的。那麼我們使用Python如何呼叫Linux的Shell命令?下面來介紹幾種常用的方法: 1. os 模組 1.1. os模組的exec方法族 Python的exec系
phpcms v9呼叫當前欄目的同級欄目的幾種方法
(1)單網頁: {loop $arrchild_arr $cid}<!--只適應用單網頁--> <li {if $catid==$cid}class="cur_link"{/if}><a href="{$CATEGORYS[$cid][
C#呼叫預設瀏覽器開啟網頁的幾種方法
CSharp呼叫預設瀏覽器開啟網頁的幾種方法示例介面:方法一:從登錄檔中讀取預設瀏覽器可執行檔案路徑 private void button1_Click(object sender, E
分析函式呼叫關係圖(call graph)的幾種方法
繪製函式呼叫關係圖對理解大型程式大有幫助。我想大家都有過一邊讀原始碼(並在頭腦中維護一個呼叫棧),一邊在紙上畫函式呼叫關係,然後整理成圖的經歷。如果運氣好一點,藉助偵錯程式的單步跟蹤功能和call stack視窗,能節約一些腦力。不過如果要分析的是指令碼語言的程式碼,那多半隻
java呼叫webservice介面 幾種方法
webservice的 釋出一般都是使用WSDL(web service descriptive language)檔案的樣式來發布的,在WSDL檔案裡面,包含這個webservice暴露在外面可供使用的介面。今天搜尋到了非常好的 webservice provide
Jsp頁面跳轉和js控制頁面跳轉的幾種方法
Jsp 頁面跳轉的幾種方法 1. RequestDispatcher.forward() 在伺服器端起作用,當使用forward()時,Servlet engine傳遞HTTP請求從當前的Servlet或者是JSP到另外的一個Servlet、JSP 或普通HTML檔
C#呼叫DLL的幾種方法,包括C#呼叫C\C++\C#DLL
C# 語言有很多優點,越來越多的人開始使用它來程式設計。但是,C#還有一些不足,如對不少的底層操作是無能為力的,只能通過呼叫Win32 DLL 或C++等編寫的DLL;另外,一般認為C#程式的保密性不夠強,因為它容易被Reflector 反編譯而得到部分原始碼,所以需要使用混合程式設計加強C#程式的保密性,而
struts2中Action資料繫結幾種方法
struts2中的Action接收表單傳遞過來的引數有3種方法: 1> 在Action類中定義表單屬性 如,登陸表單login.jsp: <form action="login" method="post" name="form"> Us
手機頁面呼叫撥號的幾種方法
手機訪問網站,點選手機號碼直接撥打電話:< a href=”tel://158xxxxxxxx”>號碼< /a>這種方式塞班、安卓與iphone都支援。經過測試這段撥號程式碼< a href=”wtai://wp/mc;158xxxxxxxx ”>撥打電話只在塞班與安卓上支
houdini dop中呼叫sop體積場的幾種方法
首先要有體積場保證sop輸出的資訊裡包含vel 場資訊,例如: M1:popvop 第一種是用popvop節點,也是最自由的節點,可以隨意編輯匯入的vel資訊, 方式就是在vop中用volume
織夢dedecms呼叫文章釋出時間的幾種方法彙總
織夢首頁時間標籤 1,11-20 樣式 ([field:pubdate function='strftime("%m-%d",@me)'/]) 2,May 15, 2009 樣式 ([field:pubdate function='strftime("%b %d, %Y
JSP頁面跳轉的幾種方法以及注意點
最近自己在做專案時遇到一個問題,明明加了response.sendRedirect() ,系統也執行了,但是它就是不跳轉;最後在網上找到原因如下: 首先我們要知道的是用r
NI LabWindows CVI 中呼叫 DLL 的幾種方法
這幾日上網發現CVI的討論者多了,也發現有很多CVI友們提出了一些困惑,比如用CVI載入別的程式語言寫的DLL時遇到的無法使用的問題。 首先是 extern "C",CVI中無法載入有此類宣告的DLL(有一些人發表的關於CVI載入DLL的文章中居然說必需有extern
利用Xposed Hook列印Java函式呼叫堆疊資訊的幾種方法
在進行Android逆向分析的時候,經常需要進行動態除錯棧回溯,檢視Java函式的呼叫流程,Android的smali動態除錯又不是很方便,因此使用Android的Java Hook的方法,列印Java函式呼叫堆疊資訊輔助靜態分析。package com.xposeddemo