1. 程式人生 > >struts2物件取值

struts2物件取值

轉發的:
字串N一定要用“”雙引號包含,從test的包含則用單引號 ‘ ’,如果相反,則不能正確判斷該屬性

是否與該字串相等。

正確:
<s:if test='activityBean.searchForce=="N" '>

錯誤:

<s:if test="activityBean.searchForce=='N' ">

因為java是強型別語言,單引號表示char型別,只能賦給一個字元給char型別,
而雙引號則表示String型別

所以我的activityBean.searchForce屬性是String型別,那麼N必須要用雙引號

/*******************************************
例如這個語句
要判斷struts堆疊裡systemSettingModel.settingValue 是否等於 "A"
寫成
<s:if test="systemSettingModel.settingValue == 'A'">...</s:if>
是不對的。
這樣A被認為是字元,而systemSettingModel.settingValue是單字元的字串,不匹配


應寫成
<s:if test='systemSettingModel.settingValue == "A"'>。。。 </s:if>

<s:if test="systemSettingModel.settingValue == \"A\"">... </s:if>

參考:
http://struts.apache.org/2.1.8.1/docs/why-wont-the-if-tag-evaluate-a-one-char-string.html

另外systemSettingModel.settingValue的值可以這樣取得
${systemSettingModel.settingValue}
<s:property value="systemSettingModel.settingValue"/>
<s:property value="#request.systemSettingModel.settingValue"/>

#表示不在struts堆疊裡,沒有#表示從struts堆疊裡取


/***********************************
Struts2堆疊
struts2中的標籤
    s:a            中的href 什麼時候使用“# ” 什麼時候該用“%{ }”  什麼時候該用“%{# }”

什麼時候用“”
    s:select      中的list 什麼時候使用“# ” 什麼時候該用“%{ }”  什麼時候該用“%{# }” 什

麼時候用“”
    s:if          中的test 什麼時候使用“# ” 什麼時候該用“%{ }”  什麼時候該用“%{# }” 什

麼時候用“”
    s:iterator    中的value什麼時候使用“# ” 什麼時候該用“%{ }”  什麼時候該用“%{# }” 什

麼時候用“”
    s:checkboxlist 中的list 什麼時候使用“# ” 什麼時候該用“%{ }”  什麼時候該用“%{# }”

什麼時候用“”



Struts2中有值堆疊和堆疊上下文的概念,你用 <s:debug />可以看出.

S標籤中用#可以取出堆疊上下文中的存放的物件.
用%{}可以取出存在值堆疊中的Action物件,直接呼叫它的方法.例如你的Action如果繼承了ActionSupport

.那麼在頁面標籤中,用%{getText('key')}的方式可以拿出國際化資訊. %{#}, 這是JSP2.1最新規範中

的語法,是Struts2為其解決相容性問題而寫成%{#}的



在域物件中使用%{#}
比如%{#session.user.userName}
將獲得user物件的 userName屬性值



%{}強調的是從你設定的root點取

%{}用於計算表示式
      如%{10+20}結果將輸出30
      如%{"a"+"b"}結果將輸出"ab"
#通常強調從上下文取
      如#parameters.name[0]等價於request.getParameter("name")
      如#session.name等價於session.getAttribute("name")
      如#request.name等價於request.getAttribute("name")
%{#}仍然用於計算表示式,只不過操作元可以是變數
      如先定義一個變數
      <s:set name="age" value="%{25}"/>
      則%{#age}將輸出25,也可以省略"#",寫為%{age}
      若將age加10,可這麼寫:
      %{#age+10},將輸出30.不能省略"#"。也就說變數用於計算時不能省略"#"

這裡好多視訊下載學習http://www.itcast.cn/channel/video.shtml,喜歡的看看

相關推薦

struts2物件

轉發的: 字串N一定要用“”雙引號包含,從test的包含則用單引號 ‘ ’,如果相反,則不能正確判斷該屬性 是否與該字串相等。 正確: <s:if test='activityBean.searchForce=="N" '> 錯誤: <s:if test="activityBean.sear

陣列vs物件

  物件外面是花括號{ },陣列外面是方括號[ ] 。 物件取值,是物件名.下標  陣列取值,是陣列名[下標] 下面是例子: 外面是花括號,這是物件stations,物件取值stations.a,取到的值如下圖 陣列外面是方括號[],所以現在取出來的

json字串資料轉成json物件方式

import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import io.swagger.models.auth.I

前端接收的json物件問題

後端給前端傳送資訊的格式 前端只能接收json物件型別的資料,使用之前先匯入阿里巴巴的json的jar包。名字如下圖所示,去白百度下載會即可。 阿里巴巴的jar包能把所有型別的資料轉換成json物件,但是前端如果想要顯示資料,只能接收陣列型別的資料。這裡我們把資

Json陣列物件

1.資料格式    {"data":[{"username":"xxx","avatar":"xxx","gift_name":"xxx"},{"username":"xxx","avatar":"xxx","gift_name":"xxx"},{"username":"xxx","ava

Struts2標籤方式一/二

Struts2標籤取值方式   1.標籤取值方式一 —— <s:property value="" />     當Action的valueStack中有該屬性的值時,只需直接使用該屬性的名字即可;      當Action的valueStack中沒有該屬性的值

Struts2-valuestack問題

如果後臺用的是valuestack的set方法存入值那麼用下面的表示式取值 <s:property value="obj.property"/> //物件名.屬性 如果用push方法的話

Struts2標籤方式

1.標籤取值方式一     通過<s:property value="" />取值     當Action的valueStack中有該屬性的值時,只需直接使用該屬性的名字即可;      當Action的valueStack中沒有該屬性的值時,比如在sessi

json字串轉js物件

jSON 例項 - 來自字串的物件 建立包含 JSON 語法的 JavaScript 字串: var txt = '{ "employees" : [' + '{ "firstName":"Bill" , "lastName":"Gates" },' + '{ "fir

陣列或物件怎麼儲存到sessionStorage或localStorage並

var ary = [1,2,3] var json = {      x:1,      b:2 } 儲存 sessionStorage.setItem('arr', JSON.stringify(ary))

c標籤遍歷map中list集合中的物件屬性

今天寫批量列印功能時,後臺傳到前端的資料是map集合,以前沒用過,取值時出現了問題,在這裡記錄一下,備忘和複習時看: 1.前端主要部分如下: <body> <c:forEach var="fee" items="${map[\"EtImportFees\

struts2動態下拉框和複選框

下拉框取值    action 程式碼: //得到下拉框的list值,並傳入頁面 public String execute() throws Exception     {         ActionContext context=ActionContext.getCo

struts2從form的三種方式

有三種方式,1,使用預設的action的傳遞方式。2,自定義一個vo,在action中使用這個vo3,使用ModelDriven的方式。下面分別敘述。1,使用預設的action的傳遞方式。action檔案如下:package struts2.login;public cla

struts2中s:select標籤從前後臺的

1.第一種: <s:select list="{'aa','bb','cc'}"  headerKey="00" headerValue="0"></s:select> 2.第二種: <s:select list="#{1:'aa',2:'

Struts2 checkbox複選框 傳/

jsp 程式碼: <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%> < prefix="c" uri="http://java.sun.com/jsp/jst

c:foreach 遍歷一個物件集合 ,顯示

  首先要引入 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>   <c:forEach var="p" items="${articleModels}">

[JSP]EL表示式和JSTL標籤遍歷物件和陣列與原來的對比

》》取出放進了request的key裡list,list含有物件 原: <%@page import="com.yiki.dbutil.*"%> <%@ page languag

JavaScript中物件屬性通過點(.)和方括號([])的不同之處

JavaScript中物件屬性通過點(.)和方括號([])取值的不同之處 1、點操作符: 靜態的。右側必須是一個以屬性名稱命名的簡單識別符號。屬性名用一個識別符號來表示。識別符號必須直接出現再js程式中,它們不是資料型別,因此程式無法修改它們。 2、中括號操作符: 動態的。方括號裡必

struts2中從頁面的三種方式

在中我們建立了第一個struts程式,那麼如何把登陸頁面中的使用者名稱傳遞到登入成功的頁面中呢?有三種方式,1,使用預設的action的傳遞方式。2,自定義一個vo,在action中使用這個vo3,使用ModelDriven的方式。下面分別敘述。1,使用預設的action的

Struts2 Session中賦與頁面

Action類中賦值 TBranchbranch = new TBranch(); branch.setId(16l); branch.setCode("4600")