2011-10-18 14 views
10

¿Es posible emitir utilizando EL?Emitir con lenguaje de expresión

Tengo una clase de Vehículo, y otras dos clases de Auto y Autobús que extienden el Vehículo. Estoy buscando todos los vehículos y hay algunos datos que tiene en el autobús pero no tiene en el coche.

Así que estaba tratando de mostrar cosas desde el auto cuando es un auto y cosas del autobús cuando es un autobús.

¿Cómo podría hacerlo, Cast, instanceof? Y cómo lo haría, porque estoy un poco perdido aquí.

Gracias

+0

lo haría con instanceOf. – Jay

+0

Quiero hacerlo para mostrar algunos datos de Bus, por ejemplo, en EL, no en Java – pringlesinn

Respuesta

9

Puede utilizar ${obj.class.simpleName == 'Car'} pero no es la mejor cosa que hay que hacer.

Quizás pueda tener un método abstracto geType() y usarlo para diferenciar. Por ejemplo:

<c:forEach items="${vehicles}" var="vehicle"> 
    Reg.No: ${vehicle.registrationPlateNumber} 
    <c:if test="${vehicle.type == 'bus'}"> 
     Toilets: ${vehicle.toilets} 
    </c:if> 
</c:forEach> 
+0

¿Cómo podría mostrar si un Bus tiene un tocador si solo Bus tiene su método? Quiero decir, cómo mostraría el valor de este atributo . – pringlesinn

+0

'getType()' sería lo mismo que 'instenceof' y lo mismo que' .simpleName'. Haces un 'si' para verificar. – Bozho

+0

Como todavía estoy un poco perdido, ¿te importaría darme un ejemplo de cómo llegar a algún atributo de Bus? – pringlesinn

-3

lo hará mediante la extensión de coche y autobús de la clase de vehículo (como vehículo estará clase padre). Por ejemplo

public class Vehicle { 
    public void speed(){ 
    // some code 
    } 
} 
public class Car extends Vehicle { 
    public void speed(){ 
    // some code 
    } 
} 
public class Bus extends Vehicle { 
    public void speed(){ 
    // some code 
    } 
} 

Ahora puede ver el tiempo que iniciaba ellos o conseguir que el clima es una instancia de vehículo de no utilizar la palabra clave instanceOf.

es decir

if(new car() instanceOf Vehicle){ 
//somecode 
} 
+1

Quiero acceder desde una página JSF, utilizando Expression Language – pringlesinn

Cuestiones relacionadas