一、起因:
在專案的工廠中,由於某個介面根據產品種類顯示的產品屬性均不相同,所以決定將介面進行拆分,將每乙個產品寫入乙個jsp介面,分別命名為product0.jsp、product1.jsp,在主介面根據產品id,分別用標籤引入對應的介面即可。
這樣做的好處是:將可變得介面進行解耦之後,如果增加乙個產品,僅需增加乙個介面即可,不會影響到其他介面的元素,便於橫向擴充套件,減少了原來主介面的**量,提公升了維護性。
因為引入介面時候,有乙個引數需要傳遞到被引入介面,卻引發了個小小的疑問,經過查詢,最終解決了,此處記錄解決經歷,以備以後參考。
二、問題描述
jsp介面中引入介面有:
1、c:import>
2、<%@ include file="inlayingjsp.jsp" %>
3、 我的工作中,主要使用jstl進行編輯jsp介面,所以選擇第一種。如果網被引入介面傳遞引數,第一反應是如下寫法
<c:import
url="inlayingjsp.jsp?optype=edit"
>
c:import
>
可是在子介面以$,取值為空。
懷疑是否沒有傳遞過來,查了下標籤的使用方法,將引數的傳遞方法改為
<c:import
url="inlayingjsp.jsp"
>
<
c:param
name
="optype"
value
="edit"
/>
c:import
>
這是標準的jstl的傳遞引數寫法,但是很不幸,仍然無法取到值。
接著研究了下標籤,發現其他引數,比如var,可是嘗試後還是不行。
<c:import
url=""
>
<
c:param
name
="wd"
value
="搜尋內容"
/>
c:import
>
試了下標準的jsp寫法,可以正確獲取到值:
<%string
optype
=request.getparameter(
"optype");
out.print(optype);
%>
問題鎖定為el表示式有問題,繼續google之,正確寫法為:
$
三、結論
問題其實很小,但也花了快乙個小時,回想起來主要是一直使用jstl進行介面編寫,缺乏對原生jsp的研究,以後要記得改進。
Linux核心工作佇列如何傳引數
linux自從2.6.20之後,工作佇列發生了一些變化,目前從網路上搜尋的資料一般都是介紹老版本的工作佇列,很少見到對新版本的介紹。本文對新老版本都做了簡要概述,並分別提供了簡單的實作案例。工作佇列 work queue 是linux kernel中將工作推後執行的一種機制。這種機制和bh或task...
jsp 引數傳呀傳
我覺得學jsp,第一要學會如何頁面跳轉,第二要學會如何在頁面之間傳遞引數,這兩樣搞定了,問題就不大了 傳遞引數當然也要分2種情況 1.伺服器端跳轉 forward 2.客戶端跳轉 response.sendredirect 在伺服器端跳轉,如果使用標籤 page name value 傳遞引數 js...
java引數傳值 傳引用
1 結論 2 傳值和傳引用區別 例項1 傳值 void method1 7 void method2 13 voidchange1 stringbuffer sb 17 voidchange2 stringbuffer sb 呼叫method1 螢幕列印結果為 helloworld 呼叫method...