1. 程式人生 > >struts 2標籤之s:if 、s:iterator注意的問題

struts 2標籤之s:if 、s:iterator注意的問題

       由於粗心,也沒有相應總結,竟然將JSTL標籤與Struts2標籤混淆,從而導致了一些細節上面的問題,今天我給自個總結下,以

後不要再犯這樣的錯誤。

總喜歡在s:if標籤裡面使用$,導致各種資料讀不出來;

strust 2 if 標籤的單個字元字串比較的問題;

還有就是啥時候用#,啥時候不用#,啥時候可以省略#。

程式碼1、

	<select id="typeProvider" name="typeProvider" style="width: 200px;">
		<s:iterator value="providers" var="provider">
			<option value="${provider.id}"  
				<s:if test="id==equipment.provider.id">selected="selected"</s:if> >${provider.name}
			</option>
		</s:iterator>
	</select>

程式碼作用:跳轉到修改資料頁面時,下拉列表預設選中的為本裝置所對應的供應商

equipment(本裝置物件)、providers(所有供應商List)均有後臺Action提供geter/setter方法。

這行程式碼(正確):

<s:if test="id==equipment.provider.id">selected="selected"</s:if> >${provider.name}
這個位置,總是寫成(錯誤):
<s:if test="provider.id == equipment.provider.id">selected="selected"</s:if> >${provider.name}
後面發現可以這樣寫也正確
<s:if test=">#provider.id==equipment.provider.id">selected="selected"</s:if> >${provider.name}

其實原理還真是不怎麼清楚,只知道如果action中如果聲明瞭變數,並賦之以set,get方法,那麼接收引數是不需要使用#,假如就是普通的request傳遞,則需要用#。哪位大神如果知曉,希望能夠指點一二。

程式碼2、

<span style="white-space:pre">	</span><s:iterator value="equipmentList" var="equipment" status="status">
		<tr style="height: 25px; text-align: center;">
			<td><s:property value="#status.index+1"/></td>
			<td>${equipment.terorder}</td>
			<td>${equipment.tertype}</td>
			<td>${equipment.provider.name}</td>
			<td>
				<s:if test="#equipment.isuser==1">
				啟用
				</s:if>
				<s:if test="isuser == 0">
				禁用
				</s:if>
			</td>
			<td>${equipment.opercard}</td>
			<td>${equipment.bizcard}</td>
		</tr>
	</s:iterator>

還是得說說這個,不過卻還要其他問題,程式碼如下(正確):(注意此時的tm_onlinestatus為String型別)
	<s:if test="%{#items.tm_onlinestatus == 1}">    
	<span style="color:blue">線上</span>
	</s:if>
	<s:if test="%{#items.tm_onlinestatus == 0}">    
	<span style="color:red">下線</span>
	</s:if>

不過這樣寫就不對啦(錯誤)!

<span style="white-space:pre">	</span><s:if test="%{#items.tm_onlinestatus == '1'}">    
	<span style="color:blue">線上</span>
	</s:if>
	<s:if test="%{#items.tm_onlinestatus == '0'}">    
	<span style="color:red">下線</span>
	</s:if>

還要一種寫法,估計更容易理解(正確):
	<s:if test='%{#items.tm_onlinestatus ==  "1"}'>    
	<span style="color:blue">線上</span>
	</s:if>
	<s:if test='%{#items.tm_onlinestatus == "0"}'>    
	<span style="color:red">下線</span>
	</s:if>

這裡的話:因為java是強型別語言,單引號表示char型別,只能賦給一個字元給char型別,而雙引號則表示String型別,因為tm_onlinestatus屬性是String型別,那麼必須要用雙引號。然後對於為何可以不用直接 == 1 這個的話也不是很明白,同樣希望指點一二。

相關推薦

struts 2標籤s:if s:iterator注意的問題

       由於粗心,也沒有相應總結,竟然將JSTL標籤與Struts2標籤混淆,從而導致了一些細節上面的問題,今天我給自個總結下,以 後不要再犯這樣的錯誤。 總喜歡在s:if標籤裡面使用$,導致各

Struts2中<s-if>和<s-iterator>標籤的使用

A:<s:if>判斷字串的問題: 1、判斷單個字元:<s:if test="#session.user.username=='c'"> 這樣是從session中取出username的值,並且判斷其是否為c,但是這樣判斷是不正確的,這樣判斷的話,根本判斷不出來,要改成下面這樣: <

RxJava 2.x 圖解建立訂閱發射流程

從一個例子開始 建立過程 訂閱過程 發射過程 小結 從一個例子開始 Observable.create(new ObservableOnSubscribe<Integer>() { @Override

Ngixn運維ifsetreturn

Ngixn運維之七 if、set、return set return if 正則表示式匹配: 檔案及目錄匹配判斷: AND,OR多重判斷 set Syntax: set $variable

struts 2 標籤

struts標籤 1.1 通用標籤 1.1.1 資料標籤 property set scope=“action”,action=request+actionContext push 修改頁面 param blue 注1:它是子標籤 注2:url/action date java.

SQL語句學習(2基本查詢排序聚合函式分組查詢

一、 基本查詢 1. 欄位(列)控制 1) 查詢所有列  SELECT * FROM 表名;  SELECT * FROM emp;  --> 其中“*”表示查詢所有列 2) 查詢指定列  SELECT 列1 [, 列2, ... 列N] FROM 表名;  SEL

Struts 2 標籤上傳GB級別檔案或多檔案

struts.xml配置: <constant name="struts.multipart.maxSize" value="4096000000" />上面這個全域性配置,也需要設定,預設是2M,必須也改成允許上傳的檔案大小 對於檔案型別的過濾,優先順序

將模板檔案保持原目錄,呼叫標籤__TMPL__/portal/ images模板檔案注意事項

  1、放置模板檔案 __TMPL__/portal/ images  :批量替換路徑 __ROOT__ 網站根目錄  這樣就可以原模板目錄結構不變,呼叫非常方便,快速實現模板製作 模板注意事項:模板檔案必須配合一個json檔案,不然預設在後臺選擇時

struts標籤怎麼判斷request裡的屬性是否為空 <s:if test="${list==null}"> </s:if>

<s:if test="${weigou}==999">    //錯誤的 ${list==null} ,$實在strtus的配置檔案中取值用的,不是在jsp頁面裡取值的的吧,所以上面錯誤; 下面是對的 <s:if test="#request.weigou==999}"

[轉載]Linux進程狀態解析RSDTZX

AI 關心 避免 內核函數 正在執行 void 並不會 轉變 說明 Linux是一個多用戶,多任務的系統,可以同時運行多個用戶的多個程序,就必然會產生很多的進程,而每個進程會有不同的狀態。 Linux進程狀態:R (TASK_RUNNING),可執行狀態。只有在該狀態的進程

strus2 <s:if>標籤 判斷字串

//可以直接判斷後臺傳來的引數 <s:if test="can1 !=null && can1 != '' "> //可以判斷後臺傳來的引數是否包含某些字元 等 <s:if test="can1.contains('#')">

struts標簽怎麽判斷request裏的屬性是否為空 <s:if test="${list==null}"> </s:if>

col cti 16px 頁面 是否 null font code 如果 <s:if test="${weigou}==999">    //錯誤的 ${list==null} ,$實在strtus的配置文件中取值用的,不是在jsp頁面裏取值的的吧,所

Linux程序狀態解析 RSDTZX (主要有三個狀態)

linux是一個多使用者,多工的系統,可以同時執行多個使用者的多個程式,就必然會產生很多的程序,而每個程序會有不同的狀態。 Linux程序狀態:R (TASK_RUNNING),可執行狀態。      只有在該狀態的程序才可能在CPU上執行。而

Android格式變數%1$s%1$d的用法

作用:動態的拼接字串,使程式碼更簡潔,更易維護和擴充套件。 1、整型 如,“他的手裡有XX個蘋果”,這個XX需要從服務或者別的地方獲取,那麼在程式碼中就可以這麼寫: <string name="number">他的手裡有%1$d個蘋果</string> 同時,

在頁面設定變數並使用Struts2 s:if 標籤判斷

因為<s:if>要比較的值必須放在作用域page,request,session...裡,所以先把值放到request裡 <% int apprType = 1;

系統部署B/S結構C/S結構剖析

對於企業在部署其業務系統時,是選擇B/S結構還是選擇C/S結構,小編可不敢妄下斷言,不過由於工作的原因,筆者接觸過典型的C/S結構也接觸過B/S結構,工作內容主要是對公司的日常IT事務進行支援和維護,作為IT維護人員明顯感到C/S結構與B/S結構的不同,在此小編簡單整理了些資料與大家分享。 C/S結構,

struts2 s:if標籤中 #,%{},%{#}的使用方法

<s:if>判斷字串的問題:   1、判斷單個字元:<s:if test="#session.user.username=='c'">   這樣是從session中取出username的值,並且判斷其是否為c,但是這樣判斷是不正確的,這樣判斷的話

使用struts2標籤庫中的s:if判斷URL引數的一些問題

        目標:實現不同jsp頁面呼叫同一list.jsp頁面時,list.jsp頁面中的顯示內容不一樣,且list.jsp頁面有分頁功能        方法:在其他jsp頁面訪問list.jspjsp頁面時,傳入一個URL引數select,且在list.jsp中利用隱

c語言入門專案3.1——s=1+2*2+3*3+4*4+5*5....n*n

編譯程式碼 /*********************** **專案【3.1】求s=1+2*2+3*3+4*4+5*5....n*n** **題目:利用while迴圈求s=1+2*2+3*3+4*4

HTML第一課:B/S結構&C/S結構HTML六種常用標籤

一、B/S和C/S結構 1.C/S(client/server)結構流程     客戶端將使用者請求通過網路,傳送給目標伺服器,伺服器接收到請求後作出響應,再通過網路將請求傳遞給使用者。 2