1. 程式人生 > >Struts2:前後臺的資料互動

Struts2:前後臺的資料互動

頁面獲取action傳來的值:

方法一:使用Java程式碼

<%= request.getParameter("str")%><%=request.getAttribute("str")%> 

方法二:使用EL表示式

${str}

方法三:使用Struts2標籤

從ValueStack取值:

   <s:property value="name"/>
   <s:property value="user"/>
   <s:property value="user.id"/>

從ActionContext中取值.
取值的時候需要加上一個符號:#

   <s:property value="#user"/>
   <s:property value="#user.id"/>
<s:property value="#parameters.name"/><br>

   //獲得request中key為MyName的值
   <s:property value="#request.MyName"/><br>
   //獲得session中key為MyName的值的值
   <s:property value="#session.MyName"/><br>
//獲得application中key為MyName的值的值 <s:property value="#application.MyName"/><br>

action向頁面傳值:

方法一:放在request裡:

1、通過ActionContext的例項化物件的put:

ActionContext context = ActionContext.getContext();
cotenxt.put(key, value);

對應前端取值的4種方式:

<%=request.getAttribute("str") %>

${str}

 <s:property
value="str"/>
<s:property value="#request.str"/>

2、通過ActionContext的例項化物件的get:

Map request = (Map)ActionContext.getContext().get("request");
request.put(key,value);

獲取方法同上(不可用S標籤)

3、通過ServletActionContext獲取request:

HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute(key, value);

方法二:放在session裡面:

1、通過request獲取session

HttpServletRequest request = ServletActionContext.getRequest();

    HttpSession session = request.getSession(); session.setAttribute(key, value);

2、通過ActionContext獲取session

  HttpSession session =ActionContext.getContext().getSession();
  session.setAttribute(key, value);

方法三:使用ValueStack

ValueStack vs = ActionContext.getContext().getValueStack();
User user = new User();
vs.push(user);

附:ActionContext

1、每一次請求都會建立一個ActionContext物件(也會建立一個ValueStack),struts框架預設向這個物件裡面存放的物件(資料)很多,包括request、session、application、ValueStack、parameters等。
2、request session application的map型別獲取:
(1)手動獲取

 ActionContext ac = ActionContext.getContext();
       //獲得Map型別request
       Map<String,Object> request = 
             (Map<String, Object>) ac.get("request");

       //獲得Map型別session
           Map<String, Object> session = ac.getSession();

       //獲得Map型別application
       Map<String, Object> application = ac.getApplication();

(2)自動獲取(通過繼承介面)
三個介面依次為:
RequestAware,SessionAware,ApplicationAware

public class WebActionTest extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{
            private Map<String, Object> request;
            private Map<String, Object> session;
            private Map<String, Object> application;

            @Override
            public String execute() throws Exception {
                //頁面中用原型別的物件取正常值就可以了
                request.put("MyName", "tom");
                session.put("YourName", "zhansan");
                application.put("HerName", "lily");
                return SUCCESS;
            }
            public void setRequest(Map<String, Object> request) {
                this.request = request;
            }

            public void setSession(Map<String, Object> session) {
                this.session = session;
            }

            public void setApplication(Map<String, Object> application) {
                this.application = application;
            }
        }

get and go!

相關推薦

Struts2前後臺資料互動

頁面獲取action傳來的值: 方法一:使用Java程式碼 <%= request.getParameter("str")%><%=request.getAttribute("str")%> 方法二:使用EL表示式

C#通過ajax前後臺資料互動

這兩天想學習下自己寫一個網頁框架,第一個就卡死我了,不知道怎麼從前臺去訪問後臺,並接受後臺資料,折騰百度幾天,終於可以了,之前一直用MVC好容易傳遞,到C#哭死。 1.先建立一個專案,有一個Default頁面(如果建立的是空白的,你就自己建一個WebForm頁面) .cs檔案程式碼 注意

ASP.NET—007GridView資料的儲存($.ajax實現前後臺互動

原文作者:楊友山前面看了如何增加和刪除Gridview資料,但是無論怎樣Gridview的資料除了展示給使用者外,還需要進行編輯後儲存的。也就是將Gridview的資料獲取下來傳到後臺,然後後臺經過識別和處理獲得資料,儲存至資料庫中。主要原理還是前面的$.ajax方式傳資料。

白喬原創資料線上互動框架InteractiveGraph

InteractiveGraph 詳細介紹     InteractiveGraph 是一個使用JavaScript開發的開源專案,為大規模圖資料提供了一個基於Web的互動操作框架,其資料可以來自於本地的GSON檔案。  &nb

白喬原創資料線上互動伺服器 InteractiveGraph-neo4j

InteractiveGraph-neo4j日前釋出v0.0.1版本。 InteractiveGraph-neo4j基於Neo4j資料庫為InteractiveGraph提供伺服器後端。InteractiveGraph為大型圖資料提供了一個基於web的互動操作框架,其資料可以來自於GSON檔

WebService手寫簡單案例客戶端與服務端的資料互動

本篇部落格是模擬服務端釋出服務,客戶端模擬接收服務端的返回資料的一個簡單案例(客戶端輸入姓名,服務端根據客戶端輸入的姓名模糊查詢身份證的案例) 服務端釋出服務 1.專案準備工作:新建一個web專案,匯入mysql的jar包放入工程,寫好jdbc連線,寫好實體類,寫dao,不同的

Vue.js學習記錄-12-Vue去哪兒網專案實戰城市列表頁開發-Header + Vuex實現資料互動

Header:城市資訊選擇標題展示 在此元件中,主要做了向Home元件的頁面路由跳轉 <template>:需要注意的是被<router-link>包裹的標籤會使原標籤樣式無效,類似<a>。 解決方案上篇文章已經給出:https://blog

使用ajax進行前後臺資料互動

1 什麼是ajax: ​ 非同步的JavaScript和xml,跟後臺互動,都用json 2 ajax幹啥用的? ​ 前後端做資料互動: 3 特點: ​ -非同步(非同步和同步的區別:同步是請求發過去,要等著迴應;非同步:不需要等迴應,可以進行其他操作) ​ -區域性重新整理: 4 使用ajax實

JavaWeb+Servlet(二)Ajax非同步登入註冊?Servlet+Json 資料互動

上一篇文章已經將Dao層搭建好了,所以只需要編寫jsp及servlet。 具體專案訪問GitHub:連結 一、登入 1. 登入介面(index.jsp) 需要匯入並載入 jquery.js檔案 <%@ page language="java" contentType="te

Struts2框架的資料封裝一之屬性封裝(屬性封裝的第二種方式封裝成javaBean)

Struts2中提供了兩類資料封裝的方式? 第一種方式:屬性驅動(有兩種方式:一個對屬性,另外一個是將引數封裝到javaBean中)   B. 在頁面上,使用OGNL表示式進行資料封裝。(將引數封裝到javaBean中)     * 在頁面中使用OGNL表示式進行資料的封裝,就可以直接把屬性封

你必須知道的React的知識點單向資料流,高效能虛擬DOM,元件間的資料互動,事件與資料的雙向繫結,生命週期鉤子,fetch資料請求等

1、React除錯工具:React Developer Tools 2、React開發工具:Atom 3、React UI庫:Material-UI / Ant Deaign 4、React適用場景:資料不斷變化的大型應用程式 5、前端UI構建方式:資料模型、UI介面

struts2與springMvc下的AJax非同步資料互動2

struts2與springMvc下的AJax非同步資料互動2          2.springMVC下的ajax非同步資料通訊              ① 第一種與

struts2與springMvc下的AJax非同步資料互動1

                              struts2與springMvc下的AJax非同步資料互動1   無論是

Struts2與json資料互動

前段時間對Struts2和json資料的互動有些問題,雖然Struts2的確是有點舊,但是因為專案的原因,還是決定記錄一下,以免忘記。 這裡主要是記錄從後臺傳到前段的問題 一般分為兩種方法: Struts.xml 1. <action name="getJso

Struts2框架與頁面的資料互動(2)--OGNL表示式&ValueStack

3、Struts2框架與頁面的資料互動(2)--OGNL表示式&ValueStack 上接Struts2礦街與頁面的資料互動(1)--資料封裝:https://blog.csdn.net/biggerchong/article/details/84564912 目錄

Struts2框架與頁面的資料互動(1)--資料封裝

2、Struts2框架與頁面的資料互動(1)--資料封裝 上接Sturts2框架入門學習:https://blog.csdn.net/biggerchong/article/details/84540183 目錄 2、Struts2框架與頁面的資料互動 2.1

《ServerSuperIO Designer IDE使用教程》-2.與硬體閘道器資料互動,並進行資料級聯轉發,直到雲端。釋出v4.2.1版本

v4.2.1 更新內容:1.重新定義資料轉發文字協議,使閘道器與ServerSuperIO以及之間能夠相關互動資料。2.擴充套件ServerSuperIO動態資料類的方法,更靈活。3.修復Designer增加轉發任務的一個BUG。4.修改資料轉發客戶端和服務端。5.增加硬體閘道器驅動。 v4.2.1 下

Django-前後臺資料互動

Django 從後臺往前臺傳遞資料時有多種方法可以實現。 最簡單的後臺是這樣的: from django.shortcuts import render def main_page(request): return render(request, 'index.html') 這個就是

Python Django 前後端資料互動 之 後端向前端傳送資料 Django 前後臺資料傳遞

Django 前後臺的資料傳遞 嚴正宣告: 作者: psklf 出處: http://www.cnblogs.com/psklf/archive/2016/05/30/5542612.html 歡迎轉載,但未經作者同意,必須保留此段宣告;必須在文章中給出原文連線;否則必究法律責任!

JSP資料互動內建物件session和include指令

什麼是會話?session一詞的原義是指有始有終的一系列動作,在實際應用中通常翻譯成會話。會話機制是一種伺服器端的機制,當用戶向伺服器發出第一次請求時,伺服器會為該使用者建立唯一的會話,會話將一直延續到使用者訪問結束。session物件作為JSP提供的內建物件之一,sessi