JFinal2.2初體驗(yàn)之Controller學(xué)習(xí)(三)

1.儲(chǔ)備知識(shí)

jfinal框架采用了傳統(tǒng)的MVC架構(gòu)設(shè)計(jì),來不及解釋了,快上車。jfinal的Controller是線程安全的,所謂的線程安全就是在多線程訪問時(shí),采用了加鎖機(jī)制來保護(hù)數(shù)據(jù)。這樣的做的好處是不會(huì)出現(xiàn)臟數(shù)據(jù)。

2.開始旅程

Controller中,最好保證它的純潔性,不要寫復(fù)雜的的業(yè)務(wù)邏輯代碼。當(dāng)然你要是喜歡的話,那就把一大堆的業(yè)務(wù)代碼寫在Controller中,反正維護(hù)你代碼的人會(huì)一直問候你的。Controller 其實(shí)主要負(fù)責(zé)action請(qǐng)求的分發(fā)和返回就好。

2.1 寫行代碼(醒醒腦)

在工程中新建html類型的文件,命名login.html,代碼如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登錄頁(yè)面</title>
</head>
<body>
    <form action="/sinlogin/login">
        <label>賬號(hào):</label><input type="text" name="user.name"> <br /><br /> 
        <label>密碼:</label><input type="text" name="user.pwd"><br /><br />
        <button type="submit">登錄</button>
    </form>
</body>
</html>

頁(yè)面中有兩個(gè)input和一個(gè)button配合工作。從代碼中可以看出一些細(xì)節(jié),比如action的指向,比如表單元素的name。

2.2劇情回顧(configRoute配置)

    /**
     * 配置路由
     */
    public void configRoute(Routes me) {
          //第一個(gè)參數(shù)是訪問controller的key
          //第二個(gè)參數(shù)是要映射的controller
          // 第三個(gè)參數(shù)為該Controller的視圖存放路徑
          // 第三個(gè)參數(shù)省略時(shí)默認(rèn)與第一個(gè)參數(shù)值相同,在此即為 "/sinlogin"路徑
        me.add("/sinlogin",LoginController.class);
    }

2.3主角登場(chǎng)(Controller)

public class LoginController extends Controller{
     /**
     *固定寫法,配置默認(rèn)的根路由
     */ 
     public void index(){
         render("login.html");
     }
     
    /**
     *login方法
     */
     public void login(){
         String name = getPara("user.name");     //獲取用戶名
         String pwd = getPara("user.pwd");          //獲取用戶密碼
         //輸出頁(yè)面上提交的信息,不出意外信息輸出正常
         System.out.println("該用戶的用戶名是:"+name+",密碼是:"+pwd);
     }
}

2.4成雙成對(duì)(數(shù)據(jù)展示)

我們已經(jīng)學(xué)會(huì)了提交數(shù)據(jù)到后臺(tái),那如果想從后臺(tái)獲取數(shù)據(jù)展示在頁(yè)面上該怎么辦么?別急,車子還沒停下來,我們一起開。滴滴滴滴

     public void index(){
         //定義變量并賦值初始化
         String name = "yetangtang";
         String pwd = "123456";
         //利用setAttr 方法將數(shù)據(jù)傳遞給view(視圖) 
         setAttr("name",name);
         setAttr("pwd",pwd);
         //渲染頁(yè)面
         render("login.html");
     }

接下來修改html頁(yè)面的代碼,具體如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登錄頁(yè)面</title>
</head>
<body>
    <form action="/sinlogin/login">
        <label>賬號(hào):</label><input type="text" name="user.name" value="${name!}"> <br /><br /> 
        <label>密碼:</label><input type="text" name="user.pwd" value="${pwd!}"><br /><br />
        <button type="submit">登錄</button>
    </form>
</body>
</html>

好厲害,你已經(jīng)成功get新技能了。大神,請(qǐng)收下我的膝蓋~

3.更多方法預(yù)覽

getPara 系列方法 :獲取頁(yè)面?zhèn)鬟f參數(shù);
getModel 與 getBean 系列方法 :獲取model(實(shí)體);
setAttr 方法 :展示數(shù)據(jù)到view;
getFile 系列方法:處理文件上傳;
renderFile 方法:處理文件下載 ;
render 系列方法 :渲染視圖并返回客戶端;
session 操作方法 :處理session對(duì)象存儲(chǔ)與管理。

PS:愿小伙伴們學(xué)習(xí)進(jìn)步,有坑大家一起填。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,624評(píng)論 18 399
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,755評(píng)論 11 349
  • 2002-2006年,我住在英國(guó)的時(shí)候,曾經(jīng)在當(dāng)?shù)厝A僑開辦的中文學(xué)校里擔(dān)任中文老師,接觸了當(dāng)?shù)氐腂BC(英國(guó)土生土...
    laurawu閱讀 716評(píng)論 0 0
  • The Dark Side Of The Moon月缺 月亮有圓有缺,月亮的背面卻是人們最感興趣的。 人云:天有不...
    MrME_Lee閱讀 370評(píng)論 0 0
  • “十年寒窗,十年苦干,再加上十足十的運(yùn)氣,才能有一份事業(yè)。你別把事情看得太容易,大多數(shù)人只能有一份職業(yè),借之糊口,...
    塔希提居士閱讀 713評(píng)論 1 1

友情鏈接更多精彩內(nèi)容