Heim  >  Artikel  >  Java  >  Eine kurze Einführung in EL-Ausdrücke in Java (Bild)

Eine kurze Einführung in EL-Ausdrücke in Java (Bild)

黄舟
黄舟Original
2017-07-24 15:33:5530180Durchsuche

Der vollständige Name von EL ist Expression Language. In diesem Artikel werden hauptsächlich die Hauptfunktionen und der Inhalt von EL-Ausdrücken vorgestellt.

JSP-Seiten unterstützen die Verwendung von EL-Ausdrücken Der vollständige Name lautet Expression Language. Die Hauptfunktionen von EL-Ausdrücken sind:

 ② Daten abrufen;

 ③ 11 implizite Objekte mithilfe von EL-Ausdrücken aufrufen; Java-Methode.

Natürlich können EL-Ausdrücke auch mit JSTL-Tags verwendet werden, um andere Funktionen wie Iteration usw. anzuzeigen.

Schauen wir uns zunächst die Verwendung von EL-Ausdrücken an, um Daten zu erhalten


Die Verwendung der Form von ${identifier} in einer JSP-Seite dient dazu, die JSP-Engine zu benachrichtigen, pageContext.findAttribute in aufzurufen Servlet. („Bezeichner“) zum Abrufen von Daten, insbesondere unter Verwendung des Bezeichners als Schlüssel zum Auffinden von Objekten oder Attributen aus jeder Domäne. Wenn es gefunden wird, wird es in Form einer Zeichenfolge zurückgegeben und auf der JSP-Seite angezeigt. Wenn es nicht gefunden wird, wird es als leere Zeichenfolge „“ angezeigt. Es zeigt auch, dass EL-Ausdrücke einfacher zu verwenden sind als dieses Tag.

Beispiel 1: Gemeinsame Daten in der Domäne abrufen

Im Browser beobachten:

 <%
   String name = "Ding";
   request.setAttribute("personName", name);
  %>  
  ${personName }
 

Beispiel 2: Objekt oder Attribut in der Domäne abrufen

Im Browser beobachten:

 <%
  Person p = new Person("Ding",25);
   request.setAttribute("person", p);
  %>  
  ${person }   <br>
  ${person.name } <br>


Beispiel 3: Holen Sie sich die Eigenschaften des Objekts im Objekt

Zwei JavaBeans im Domänenpaket:


Der Code auf der JSP-Seite lautet:

public class Person { 
  private String name;
  private int age;
 private Address address; 
 。。。省略各个属性的get和set方法
  } 
 public class Address {
 private String city;  
  。。。省略city属性的get和set方法
 }

Beobachten Sie im Browser:

 <%
    Person p = new Person();
   Address a = new Address();
   a.setCity("Amoy");
   p.setAddress(a);
   request.setAttribute("person", p);
  %> 
  ${person.address.city }

Hinweis: Die Attribute in dieser Art von Objekten sind immer noch Objekte. Achten Sie besonders darauf, dass die Namen der Attribute in der JSP konsistent sein müssen, sonst wird eine Ausnahme ausgelöst.
Beispiel 3-2: EL-Ausdruck im Webprojekt verwenden, um den aktuellen Webprojektpfad zu erhalten

Der Wert dieses EL-Ausdrucks ist:

 ${pageContext.request.contextPath}


Beachten Sie, dass am Anfang des Ausdrucks bereits ein Schrägstrich „/“ steht. Der „pageContext“ im EL-Ausdruck ist hier ein implizites Objekt in EL. Weitere Informationen finden Sie im nächsten Blog.

Beispiel 4: Elemente aus der Listensammlung entfernen

Im Browser beobachten:

 <%
   List<Person> personList = new ArrayList<Person>();
  personList.add(new Person("Ding",25));
  personList.add(new Person("LRR",24));
  request.setAttribute("persons",personList);
  %>  
  ${persons[0].name } love ${persons[1].name}


Beispiel 5: Elemente aus der Kartensammlung herausnehmen

Im Browser beobachten:

 <%
   Map<String,Person> personMap = new HashMap<String,Person>();
  personMap.put("p1",new Person("Ding",25));
   personMap.put("p2",new Person("LRR",24));   
  request.setAttribute("pMap", personMap);
  %>  
  ${pMap.p1.name } <br>
  love <br>
  ${pMap[&#39;p2&#39;].name }


Sie können sehen, dass Sie zusätzlich zur Verwendung von „.“ zum Abrufen des dem Attribut oder Schlüssel entsprechenden Werts in der Map-Sammlung auch „[‘identifier‘]“ verwenden können (Hinweis). die einfachen Anführungszeichen in den eckigen Klammern), Dies gilt insbesondere dann, wenn der Bezeichner eine Zahl ist, aber die Verwendung von „['bezeichner']“ wird keinen Fehler melden.

Beachten Sie, dass der EL-Ausdruck die Attribute des Objekts abrufen kann, da die Felder im Objekt die Get-Methode bereitstellen, sodass sie zu Attributen werden. EL kann nur die Attribute des Objekts abrufen, nicht jedoch die Felder des Objekt. Das ist klar.

Mängel von EL-Ausdrücken: Unabhängig davon, ob sie aus einer Listensammlung oder einer Kartensammlung stammen, können EL-Ausdrücke nicht zum Iterieren der Sammlung verwendet werden. Wenn Sie also die Sammlung iterieren müssen, müssen Sie EL-Ausdrücke mit JSTL verwenden Tags.

EL-Ausdrücke unterstützen Operationen, ob arithmetische, logische oder relationale Operationen:


Syntax: ${operationaler Ausdruck}


(arithmetische Operatoren werden hier weggelassen)

Beispiel 6:

Im Browser angezeigt: WAHR.

 <%
   request.setAttribute("username", "root");
   request.setAttribute("password", "123");
  %>
  ${username == "root" && password == "123" }
Zusätzlich zu den oben genannten drei einfachen Operatoren unterstützen EL-Ausdrücke auch den leeren Operator und binäre Ausdrücke (Ausdruck? Wert 1: Wert 2)


leerer Operator: erkennen ob das Objekt null ist oder ob bestimmte Daten „“ leere Zeichenfolge sind


Beispiel 7:

im Browser Beobachtung:

 

二元表达式:

例8:


 <%
   User user = new User();
   user.setUsername("fjdingsd");
   pageContext.setAttribute("user", user);
  %>  
 欢迎您:${user!=null ? user.username : &#39;&#39; }

浏览器中观察:

  

  上面这个例子使用EL表达式的二元表达式,如果user对象不为null,则输出该对象中的username属性,否则输出空字符。 

  二元表达式的另一种用途还可以用来做数据回显,假设有一个用户要修改其注册信息,那么服务器(或从数据库)在返回其数据到显示页面时,应该在他编辑过的信息重新显示出来。

例9: 


<%
   request.setAttribute("gender", "female");
  %>
  <input type="radio" name="gender" value="male" ${gender==&#39;male&#39;?&#39;checked&#39;:&#39;&#39; }>男    
  <input type="radio" name="gender" value="female" ${gender==&#39;female&#39;?&#39;checked&#39;:&#39;&#39; }>女

浏览器中显示:  

Das obige ist der detaillierte Inhalt vonEine kurze Einführung in EL-Ausdrücke in Java (Bild). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn