15 April 2017

Struts 2 OGNL Ngôn ngữ diễn tả là như thế nào?

(OGNL) . Ngôn ngữ diễn tả đơn giản và mạnh mẽ. Ngôn ngữ biểu thức OGNL giúp truy cập vào các giá trị được lưu trữ trên ValueStack và trong ActionContext .
Đầu tiên chúng ta hãy xem làm thế nào để truy cập vào một mảng các biến String sử dụng OGNL.

package demo;

public class SampleAction {

    private  String[] sampleArray;
    {
     sampleArray =  new String[]{"item1","item2","item3"};
    }
    public String execute()
    {
     return "success";
    }
    public String[] getSampleArray() {
     return sampleArray;
    }
    public void setSampleArray(String[] sampleArray) {
     this.sampleArray = sampleArray;
    }
}
Bạn có thể truy cập các giá trị mảng trong trang jsp sử dụng ngôn ngữ  OGNL theo cách sau

<b>Array Usage Examples</b>
<br><hr>
<b>sampleArray :</b> <s:property value="sampleArray"/> <br>
<b>sampleArray.length :</b> <s:property value="sampleArray.length"/> <br>
<b>sampleArray[0] :</b> <s:property value="sampleArray[0]"/> <br>
<b>[0].sampleArray :</b> <s:property value="[0].sampleArray"/> <br>
<b>top.sampleArray :</b> <s:property value="top.sampleArray"/> <br>
Vì đối tượng của chúng ta nằm trên ValueStack, chúng ta có thể truy cập nó bằng cách sử dụng ký pháp [0]. Nếu đối tượng của chúng tôi ở vị trí thứ hai từ đầu, chúng tôi sẽ truy cập nó bằng cách sử dụng ký hiệu [1].
Chúng tôi cũng có thể làm điều này bằng cách sử dụng từ khóa trên cùng . Top trả về giá trị trên đầu trang ValueStack.

Bây giờ chúng ta hãy xem làm thế nào để truy cập một ArrayList bằng cách sử dụng ngôn ngữ biểu hiện OGNLTrong lớp hành động chúng ta tạo và khởi tạo ArrayList như dưới đây.

package demo;

import java.util.ArrayList;
import java.util.List;

public class SampleAction {

    private  List<String> sampleList = new ArrayList<String>();
    {
        sampleList.add("listItem1");
        sampleList.add("listItem2");
        sampleList.add("listItem3");
    }
    public String execute()
    {
     return "success";
    }
    public List<String> getSampleList() {
     return sampleList;
    }
    public void setSampleList(List<String> sampleList) {
     this.sampleList = sampleList;
    }
}
Bạn có thể truy cập các giá trị ArrayList trong trang jsp sử dụng cú pháp sau đây

<b>List Usage Examples</b>
<br><hr>
<b>sampleList :</b> <s:property value="sampleList"/> <br>
<b>sampleList.size :</b> <s:property value="sampleList.size"/> <br>
<b>sampleList[0] :</b> <s:property value="sampleList[0]"/> <br>
Bây giờ chúng ta hãy xem làm thế nào để truy cập một Map bằng cách sử dụng ngôn ngữ biểu hiện OGNLTrong lớp hành động chúng ta tạo và khởi tạo HashMap như dưới đây.

package demo;

import java.util.HashMap;
import java.util.Map;

public class SampleAction {

 private  Map<Integer,String> sampleMap = new HashMap<Integer,String>();
 private  String carMake;
 {
  sampleMap.put(new Integer(1), "one");
  sampleMap.put(new Integer(2), "two");
  sampleMap.put(new Integer(3), "three");
 }
 public String execute()
 {
  return "success";
 }
 public Map<Integer, String> getSampleMap() {
  return sampleMap;
 }
 public void setSampleMap(Map<Integer, String> sampleMap) {
  this.sampleMap = sampleMap;
 }
 public String getCarMake() {
  return carMake;
 }
 public void setCarMake(String carMake) {
  this.carMake = carMake;
 }

}
Bạn có thể truy cập các giá trị Map trong trang jsp sử dụng cú pháp ngôn ngữ biểu thức OGNL sau.

<b>Map Usage Examples</b>
<br><hr>
<b>sampleMap[1] :</b> <s:property value="sampleMap[1]"/> <br>
<b>sampleMap.size :</b> <s:property value="sampleMap.size"/> <br>
Bạn cũng có thể tạo một Map trong trang jsp sử dụng cú pháp sau.

<s:select list="#{'make1':'Ford', 'make2':'Honda', 'make3':'Toyota'}" name="carMake" label="Select "></s:select>
Bây giờ chúng ta hãy xem cách truy cập vào thuộc tính name của đối tượng User trong lớp Action sử dụng ngôn ngữ biểu hiện OGNL. SameAction chứa mã sau đây.

package demo;

public class SampleAction {

    private  User user = new User();
    {
        user.setName("Eswar");
    }
    public String execute()
    {
        return "success";
    }

    public String getQuote()
    {
        return "Don't think, just do";
    }
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }

}
Bạn cần sử dụng ngôn ngữ biểu thức OGNL second-level để truy cập vào thuộc tính tên người dùng.
<b>user.name :</b> <s:property value="user.name"/> <br>

Bạn cũng có thể gọi một phương thức trong action class theo cách sau. Thao tác này sẽ gọi phương thức quote () trong action class.

<b>quote() :</b> <s:property value="quote()"/> <br>
Chúng ta xem Demo cụ thể vào đây

0 nhận xét:

Post a Comment

 

BACK TO TOP

Xuống cuối trang