關於JSP頁面嵌入Java程式碼
阿新 • • 發佈:2018-12-30
在公司專案中碰到不少在JSP頁面中嵌入Java程式碼,如下:
var CIRCUIT
= "<%= CutoverService.CIRCUIT%>";
var CABLE
= "<%= CutoverService.CABLE%>";
var SEG
= "<%= CutoverService.SEG%>";
var ROAD
= "<%= CutoverService.ROAD%>";
var PORT
= "<%= CutoverService.PORT %>";
還有:
<%
String patrolSys = SysConfig.getValue( "PATROL");
String staffAccount = "";
StaffRegister staffVO = (StaffRegister) session
.getAttribute( "staff");
if (staffVO
!= null) {
staffAccount = staffVO.getSStaffAccount();
}
%>
在table行中嵌入:
<%
if (!ConstantsUtil.SYSTEM_NAME_JTWG.equals(systemName)) {
%>
<tr>
<th>
事件級別:
</th>
<td id = "js_base_I_SITUATION_LEVEL_chsName" >
</td>
<th>
網路等級 :
</th >
<td id ="js_base_I_CUTOVER_LEVEL_chsName" >
</td>
</ tr>
<%
}
%>
在MVC模式下,JSP頁面一般來說只負責頁面顯示,並不處理具體的邏輯實現,也就是我們所說的MVC模式中的V(view)。
1、在JSP頁面寫了Java程式碼後維護升級比較困難,因為大多數情況下頁面是前端做的,後臺只負責返回資料顯示。而且這樣寫之後MVC模式“形同虛設”,各層結構混亂。
2、解決辦法:使用EL表示式
在頁面中引入C標籤:
<%@ tagliburi = "http://java.sun.com/jsp/jstl/core"prefix = "c"%>
<!-- 設定path變數,獲取專案根路徑 -->
< c:setvar = "path"value = "${pageContext.request.contextPath} "/>
獲取request請求引數:${param.parameter},param為EL表示式中的物件,parameter即為你獲取的引數
${requestScope.name}等價於requset.getAttribute("name");
使用
<c:choose>
<c:whentest= " ${flag=='0'
} ">
新增
</c:when>
<c:otherwise>
修改
</c:otherwise>
</c:choose>
代替if else
這裡只提供個思路,具體的請參考EL表示式。
如有不對之處歡迎指正