首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

OGNL 表達式與 Struts2 標簽庫實戰筆記

     編輯:Java 綜合教學

OGNL 表達式與 Struts2 標簽庫實戰筆記

OGNL (Object-Graph Navigation Language) 是 Struts2 預設表達式語言,支撐數據綁定、類型轉換、集合操作等核心功能。結合 Struts2 標簽庫(<s:property>、<s:iterator>、<s:if> 等)實現視圖層邏輯。本文記錄常用語法與標簽用法。

OGNL 核心語法

  • 屬性訪問:user.name、user.address.city
  • 集合/數組索引:list[0]、map['key']
  • 方法調用:user.getFullName()、@java.util.UUID@randomUUID()(靜態方法)
  • 運算符:+ - * / %、== != < > <= >=、&& || !、in not in
  • 投影/選擇:{item | item.price > 100}(選擇)、{item.price}(投影)
  • 上下文變量:#request、#session、#application、#parameters、#attr
  • 值棧訪問:[0].top、[1].user.name

Struts2 常用標簽

標簽用途示例
<s:property value="..."/>輸出值<s:property value="user.name"/>
<s:if test="...">條件判斷<s:if test="user.age > 18">成年</s:if>
<s:iterator value="..." var="item">遍歷集合<s:iterator value="userList" var="u"><s:property value="#u.name"/></s:iterator>
<s:fielderror/>顯示校驗錯誤<s:fielderror fieldName="username"/>
<s:actionerror/>顯示 Action 錯誤—
<s:url action="..."/>生成 URL<s:url action="list" var="url"/><a href="%{url}">列表</a>
<s:form>表單標簽自動綁定 Action 屬性
<s:textfield/>、<s:password/>、<s:select/>表單輸入組件自動綁定、回顯、主題樣式

值棧與 OGNL 交互

Action 實例被推入值棧頂層,OGNL 表達式默認針對棧頂對象解析。<s:property value="name"/> 相當於 action.getName()。使用 # 訪問非棧頂對象(如 #session.user)。

類型轉換

Struts2 自動將請求參數(字符串)轉換為 Action 屬性類型(基本類型、Date、自定義類)。自定義轉換器實現 TypeConverter,配置 xwork-conversion.properties 或註解 @TypeConversion。

最佳實踐

  • 視圖層盡量簡單,複雜邏輯移至 Action/Service
  • 使用 theme="simple" 避免默認表格佈局干擾
  • 集合遍歷優先 <s:iterator>,避免 scriptlet
  • 錯誤消息統一用 <s:fielderror/>、<s:actionerror/>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved