15 April 2017

Sự khác biệt giữa các dấu hiệu #,% và $ trong các thẻ Struts là gì?

Sử dụng #
OGNL được sử dụng để chỉ các đối tượng trong ActionContext như sau:
objectName: Đối tượng trong ValueStack (mặc định / đối tượng gốc trong ngữ cảnh OGNL), chẳng hạn như một Action property
  • #objectName: Đối tượng trong ActionContext nhưng bên ngoài của ValueStack, cụ thể ...
  • #objectName: Đối tượng ActionContext đã được tạo ra bằng cách sử dụng các thẻ dữ liệu Struts2 với phạm vi hành động mặc định (ví dụ <s:set name="foo" value="'Testing'" />, tham chiếu bởi <s:property value="#foo" />)
  • #parameters.objectName: Tham số yêu cầu
  • #request.objectName: Thuộc tính yêu cầu phạm vi
  • #session.objectName: Thuộc tính session-scoped
  • #application.objectName: Thuộc tính ứng dụng
  • #attr.objectName: Thuộc tính trong trang, yêu cầu, phiên hoặc phạm vi áp dụng (tìm theo thứ tự đó)
  • Các tham chiếu Map giới hạn ở trên (thông số, yêu cầu, phiên và ứng dụng) có thể được thực hiện theo một trong hai cách sau:
  • #scopeName.objectName hoặc là
  • #scopeName['objectName']
Sử dụng %
%{ OGNL expression } Được sử dụng để buộc đánh giá OGNL của một thuộc tính thường được hiểu như là một ký tự String.
Thí dụ: <s:property value="myProperty" default="%{myDynamicDefaultValue}" />  <s:url id="urlAtt" action="urlTag.action"> <s:a href="%{urlAtt}">Call Action</s:a> 
Sử dụng @
  • Ký hiệu @ được sử dụng để tạo các tham chiếu đến các thuộc tính và phương pháp tĩnh. Lưu ý rằng bạn có thể cần bật tính năng này trong thuộc tính Struts2 của mình:struts.ognl.allowStaticMethodAccess=true
  • Ví dụ:
  • @my.package.ClassName@MY_STATIC_PROPERTY
  • @my.package.ClassName@myStaticMethod
Sử dụng $
  • Struts2 OGNL không sử dụng đặc biệt dấu đô la. Tuy nhiên, nó có thể được sử dụng để đánh giá các biểu thức JSTL bình thường. Ví dụ:
  • Struts2: <h1><s:property value="#pageTitle" /></h1>
  • (tương đương với ...)
  • JSTL:<h1>${pageTitle}</h1>

0 nhận xét:

Post a Comment

 

BACK TO TOP

Xuống cuối trang