<jsp:useBean id="today" class="java.util.Date" scope="request"></jsp:useBean>
==>
Object o = request.getAttribute("today");
if(o != null){
Date today = (Date)o;
}else{
Date today = new java.util.Date();
request.setAttribute("today",today);
}
class是先尋找,找不到則建立新對象,並設定屬性在範圍中
<jsp:useBean id="today" type="java.util.Date" scope="request"></jsp:useBean>
==>
Object o = request.getAttribute("today");
if(o != null){
Date today = (Date)o;
}else{
throw new Exception("在scope中找不到名為today的資訊");
}
type是先尋找,找不到則報異常
適用於多態環境下
<jsp:setProperty property="birthday" name="p" value="<%=request.getParameter("birthday") %>"/>
==>
String birthday = request.getParameter("birthday");
p.setBirthday(birthday);
<jsp:setProperty property="name" name="p"/>
==>
String name = request.getParamter("name");
p.setName(name);
沒有設定value,則系統預設從頁面中按照屬性名稱尋找同名的參數。並設值
<jsp:setProperty property="*" name="p"/>
==》
擷取p對象中的所有屬性名稱
把每個屬性名稱作為參數名尋找頁面中的參數值
設定對象的屬性值
===============================================
前提:
頁面中的控制項名==實體類中的屬性名稱
===============================================
<jsp:getProperty property="name" name="p"/>
==》
p.getName();
頁面的作用:
1 接受使用者輸入的資料
<form...>
2 擷取某個範圍中儲存的資料,展現資料給用戶端
<jsp:useBean id="" type="" scope="">
跳轉路徑:
建議使用絕對路徑,即以/開頭
在html和redirect跳轉中,/應用程式名稱/請求...
在forward跳轉中,/請求...
jsp中遺留的java代碼:
1 擷取資料的代碼
參數
屬性
系統內部資訊
2 邏輯分支、迴圈語句
EL:expression language運算式語言
文法結構:
${...}
作用:
擷取資料並顯示
資料包含:
*參數
${param.參數名}
==》
request.getParameter("參數名");
${paramValues.參數名}
擷取多個同名參數值
request.getParameterValues("參數名")
*屬性
${屬性名稱}
==》
pageContext.findAttribute("屬性名稱");
PageContext-----代表當前web應用
getAttribute("屬性名稱",取的範圍)
PageContext.REQUEST_SCOPE
PageContext.SESSION_SCOPE
PageContext.APPLICATION_SCOPE
setAttribute("屬性名稱","屬性值",設定的範圍)
PageContext.REQUEST_SCOPE
PageContext.SESSION_SCOPE
PageContext.APPLICATION_SCOPE
findAttribute("屬性名稱")
request==>session==>application中依次 搜尋屬性,找到即停止。找不到則返回null
${內建對象名.屬性名稱}
===>
pageContext.getAttribute("屬性名稱",內建對象名)
*系統內部資訊
${pageContext.對象名....}
el的常用內建對象
requestScope
sessionScope
applicationScope
el中支援的資料資訊:
<INTEGER_LITERAL>
<FLOATING_POINT_LITERAL>
<STRING_LITERAL>
"true", "false"
"null"
"("
"-"
"not"
"!"
"empty"
<IDENTIFIER>
el中支援的運算子:
"}", ".", ">", "gt", "<", "lt", "==", "eq", "<=", "le", ">=", "ge", "!=", "ne", "[", "+", "-", "*", "/", "div", "%", "mod", "and", "&&", "or", "||", "?"
pageContext.getRequest():ServletRequest
request.getContextPath();
==>
${pageContext.request.contextPath}