1. 程式人生 > >關於struts2使用模型形驅動,在頁面上怎樣取得值

關於struts2使用模型形驅動,在頁面上怎樣取得值

模型驅動與屬性驅動的區別

->屬性驅動 
對於屬性驅動,我們需要在Action中定義與表單元素對應的所有的屬性,因而在Action中會出現很多的getter和setter方法

->模型驅動 
對於模型驅動,使用的Action物件需要實現ModelDriven介面並給定所需要的型別.而在Action中我們只需要定義一個封裝所有資料資訊的javabean

->屬性和模型驅動的相同點 
當我們使用屬性驅動和模型驅動的時候,必須將表單的元素中的name屬性值與我們定義接收資料資訊的變數名對應起來。

很明顯,模型驅動好像讓我們寫的東西更少了一些。。。。。。。

使用步驟

步驟: 
1. 實現ModelDriver介面 
2. 實現介面方法: 介面方法返回的就是要封裝的物件 
3. 物件一定要例項化。

/** 
* 1. 資料回顯 
* 2. 模型驅動 

*/

<code class="hljs axapta has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">    <input type=text name=userName />
    <input type=text name=pwd />

    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">public</span> <span class="hljs-class" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">class</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">UserAction</span> <span class="hljs-inheritance" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">extends</span></span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">ActionSupport</span> <span class="hljs-inheritance" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">implements</span></span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">ModelDriven</span><<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">User</span>> {</span>

        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 封裝請求資料</span>
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">private</span> User user = <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">new</span> User();
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span> setUser(User user) {
            <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">this</span>.user = user;
        }
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">public</span> User getUser() {
            <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> user;
        }
<span style="white-space:pre">	</span>//這裡不可以不提供User的getter和set方法</code><code class="hljs axapta has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span style="white-space:pre">	</span>//在頁面上直接用model就行了</code><code class="hljs axapta has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">
        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 實現模型驅動介面方法 , getModel方法自動將提交的資料給user屬性賦值 </span>
        @Override
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">public</span> User getModel() {
            <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> user;
        }


        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">public</span> String add() {

            <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">/*這裡我們可以直接使用user的屬性值*/</span>
            <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"success"</span>;
        }</code>

相關推薦

關於struts2使用模型驅動頁面怎樣取得

模型驅動與屬性驅動的區別 ->屬性驅動  對於屬性驅動,我們需要在Action中定義與表單元素對應的所有的屬性,因而在Action中會出現很多的getter和setter方法 ->模型驅動  對於模型驅動,使用的Action物件需要實現ModelDrive

ajax前後端分離頁面之間傳

在前後端分離書寫中難免會遇到一個list頁面點選修改操作需要傳值的問題,那麼我們如何進行傳值和在列一個頁面進行接受引數與後臺互動呢? 下面書寫一個修改操作的傳值 <!DOCTYPE html> <html> <head> &

struts2基於模型驅動的檔案傳(傳視訊為例子)

package cn.hbmy.tas.entity; import java.io.File; public class Video { private Integer id; //id private File video; private String

Action接收引數的3種方式(屬性模型模型驅動struts2.1.8)

常用第一種跟第二種 1.Action屬性傳引數: 建議:屬性應該與引數名相同。 在一個繼承ActionSupport類中新增接收引數的屬性,並生成其get() set()方法,在請求中附帶引數和對應的值,在struts2幫我們new這個類的時候,會自動呼叫get,set方法

struts2模型驅動屬性名要和頁面一致

JSP程式碼<input type="text" name="shopId">javabean程式碼 private Integer shopID; 結果使用模型驅動時報錯 Unexpected Exception caught setting 'shopId'

h5 網絡斷網時返回一個頁面 demo (與檢測網絡代碼相結合更直觀看到結果)

oct width 加載 doctype lin 測試 htm mini offline 頁面一: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8">

struts2 模型驅動

rate 方法 mit java todo ret auto post string 在servlet中獲取頁面傳遞過來的數據的方式是:request.getParameter(“username”);這個代碼可以獲取到頁面的username的數據。在action中可以通過

以+scheduledTimerWithTimeInterval...的方式觸發的timer在滑動頁面的列表時timer會暫定回調為什麽?如何解決?

指定 val timer 運行模式 sch 發的 滑動頁面 循環 oop 這裏強調一點:在主線程中以+scheduledTimerWithTimeInterval...的方式觸發的timer默認是運行在NSDefaultRunLoopMode模式下的,當滑動頁面上的列表時

用IHTMLDocument2接口獲取頁面想要的數據代替正則表達式

正則表達式 導入 innertext close lose doc html con HA 原文:用IHTMLDocument2接口獲取頁面上想要的數據,代替正則表達式原文發布時間為:2010-07-01 —— 來源於本人的百度文章 [由搬家工具導入]1. 用

編寫一個函數頁面輸出一個N行M列的表格表格內容填充1~100的隨機數字

order 編寫 表格 func 隨機 函數 var 隨機數 for 編寫一個函數,在頁面上輸出一個N行M列的表格,表格內容填充1~100的隨機數字 function tab(n,m){ document.write("<table border=1>"); f

頁面輸入文字資訊區域網內電腦連線的LED大屏就會顯示文字資訊

前提:區域網,公用一個數據庫,實時重新整理(js程式碼) 思路: 1.在一個文字框內(編輯通知資訊)輸入資訊,點選一下提交,後臺就執行插入資料庫操作 2.這個頁面是每分鐘重新整理一次,通知欄就會呼叫資料庫裡面的內容,從而顯示在LED上面 3 這個頁面是專門給領導用的,不實現重新整理,

《深入理解 Java 記憶體模型》讀書筆記()(乾貨萬字長文)

0. 前提 1. 基礎 2. 重排序 3. 順序一致性 4. Volatile 5. 鎖 6. final 7. 總結 0. 前提 《深入理解 Java 記憶體模型》 程曉明著,該書在以前看過一

點選頁面的元素頁面刪除removeChild()

簡單描述:最近做了一個圖片上傳,上傳完成回顯圖片的時候,需要用到點選圖片,從頁面刪除的效果,然後就找到了removeChild()方法,說實話,我剛看到的時候,就覺得這個問題已經解決了,但是卻發現這個方法裡傳的引數竟然有點不同尋常,我往裡邊放了一個用引號包起來的id字串,表示刪除該id,結果F12就出現了一個

如何利用 CSS 動畫原理頁面表現日蝕現象

效果預覽 線上演示 按下右側的“點選預覽”按鈕可以在當前頁面預覽,點選連結可以全屏預覽。 https://codepen.io/comehope/pen/OELvrK 可互動視訊教程 此視訊是可以互動的,你可以隨時暫停視訊,編輯視訊中的程式碼。 請用 chrom

MUI如何實現返回頁面不重新整理並獲取一個頁面的返回

MUI如何實現返回頁面不重新整理,並獲取上一個頁面的返回值      MUI中經常需要用到從當前頁面返回到上一個頁面,且不重新整理上一個頁面。   實現思路: 1.上一個頁面通過MUI的方式跳轉到當前頁面 2.當前頁面設定設定mu

jq或js父元素、子元素之間頁面元素的獲取以及使用後臺模板遇到無法將子頁面取到的顯示在彈出的頁面的問題

一、jquery 父、子頁面之間頁面元素的獲取,方法的呼叫: 1. 父頁面獲取子頁面元素:     格式:$("#iframe的ID").contents().find("#iframe中的控制元件ID").click();  &nbs

部分vivo和oppo手機使用傳圖片功能可能會出現退出webview的現象(回退到app的入口頁面)

在公司的app裡面嵌入了一個h5頁面,h5頁面有個使用圖片上傳功能,上傳圖片出現閃退的現象  問題描述: vivo手機,在app內的wap頁面使用上傳圖片的功能,在選擇好圖片點選確認按鈕後,出現退出整個webview,回退到app該wap頁面的入口頁面,且app自動重新整理了該入口頁面

struts2 直接向頁面輸出文字

方法一: 以返回 stream 的方式返回原始文字字串,返回的"stream"字串必須與 struts.xml 內的 result 設定相符 // 建立私有變數 private InputStream streamActionResult = null; // struts.xml 定義

【我要程式設計】Java技術手冊之根據圖片連結把圖片轉化為io流並輸出到頁面的方法

適用場景:A程式只能內網訪問,B程式可以外網訪問,只有B程式可以訪問A程式,使用者需要通過B程式訪問A程式的圖片資源。這是可以使用該方法。 @RequestMapping("/getImageByPath") public void getImageByTomcat(St

解決移動端返回頁面重新整理問題

通常可以用到window.history.back(); window.history.go(-1);返回重新整理上一頁, 但當兩種方法都不滿足你的開發需求的時候,可以採用以下的方法。 從a頁面,跳轉到b頁面,b頁面的資料操作,會影響a頁面的展示。那麼在b頁面裡就可以使用,sessionStorage.set