Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / jstl forEach: сложный прикол / 25 сообщений из 32, страница 1 из 2
11.05.2017, 19:32
    #39451620
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;

@Named
@RequestScoped
public class ProductView {

    @EJB
    private ProductService productService;

    private Product product;

    private String id;

    public Product getProduct() {
        return product;
    }

    public void setProduct(Product product) {
        this.product = product;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public void load() {
        System.out.println("Load product " + id);
        product = productService.find(Integer.parseInt(id));
    }

}



Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<ui:composition template="/WEB-INF/views/layouts/main.xhtml"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://xmlns.jcp.org/jsf/html"
                xmlns:c="http://java.sun.com/jstl/core"
                xmlns:f="http://xmlns.jcp.org/jsf/core"
>
    <ui:define name="content">
    <f:metadata>
        <f:viewParam name="id" value="#{productView.id}"/>
        <f:event type="preRenderView" listener="#{productView.load}"/>
    </f:metadata>
    ....
        <c:forEach var="image1" items="#{productView.product.images}">
            <div>
                #{image1.name}
            </div>
        </c:forEach>
    </ui:define>
</ui:composition>



Пусто!

При это тут же пишу:

Код: xml
1.
2.
3.
        <h3>
            #{productView.product.images[0].name}
        </h3>



Корректно отображается имя. А итеррироваться через forEach не хочет. Что за прикол такой?
Причем раньше то работало, коммитов 5 назад.
Нашел тот коммит, на котором сломалось, там был добавлен beans.xml, если в том коммите удалить, то начинает работать все, но потом было много изменений. В общем удаление beans.xml в последнем коммите проблему не решает.
...
Рейтинг: 0 / 0
11.05.2017, 20:05
    #39451642
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
Короче если в ProductView добавить

Код: java
1.
2.
3.
4.
    @PostConstruct
    public void init() {
        product = productService.find(6);
    }



То все ок. Но через load() он не хочет работать. Пока так и не понял почему.
...
Рейтинг: 0 / 0
11.05.2017, 20:17
    #39451643
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
Вот минимальный пример:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
import java.io.Serializable;
import java.util.ArrayList;

@Named
@RequestScoped
public class ProductView implements Serializable {

    private String id;

    private ArrayList<ArrayList<String>> data = new ArrayList<>();

    public void load() {

        ArrayList<String> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            list.add("item " + i);
        }
        data.add(list);
    }

    public ArrayList<ArrayList<String>> getData() {
        return data;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }
}



Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://xmlns.jcp.org/jsf/html"
                xmlns:c="http://java.sun.com/jsp/jstl/core"
                xmlns:f="http://xmlns.jcp.org/jsf/core">

<h:body>
    <f:metadata>
        <f:viewParam name="id" value="#{productView.id}"/>
        <f:event type="preRenderView" listener="#{productView.load}"/>
    </f:metadata>

    Dump<br/>
    #{productView.data[0]}
    <br/>


    ForEach<br/>
    <c:forEach var="item" items="#{productView.data}">
        Item
    </c:forEach>

</h:body>
</html>




Вывод:

Код: plaintext
1.
2.
Dump 
[item 0, item 1, item 2, item 3, item 4, item 5, item 6, item 7, item 8, item 9] 
ForEach 
...
Рейтинг: 0 / 0
11.05.2017, 20:22
    #39451647
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
Короче я понял.
JSTL выполняется до JSF.
...
Рейтинг: 0 / 0
11.05.2017, 20:25
    #39451649
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
С ui:repeat все нормально работает. Всем спасибо.
...
Рейтинг: 0 / 0
11.05.2017, 21:19
    #39451664
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
Hett, Да - известная проблема с forEach, вы совершенно правильно перешли на ui:repeat. Сочувствую конечно вам, jsf - та еще радость
...
Рейтинг: 0 / 0
11.05.2017, 23:12
    #39451702
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
забыл никjsf - та еще радость
я один прочитал гадость? :-)
...
Рейтинг: 0 / 0
13.05.2017, 15:57
    #39452564
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
Может и гадсоть, но если сравнивать с тем же PHP, на котором я уже "собаку съел", неприятных вещей не больше. Возможно даже чуть меньше, потому что нет каши их трех технологий в одной вьюхе (PHP + HTML + JavaScript). Делаю интернет магазинчик в процессе изучения EE, вот делал корзину сейчас, обошелся вообще без использования JS, что порадовало. При этом все работает на AJAX.
Да и какие альтернативы? Backbone, amber, angular и т.п.?
...
Рейтинг: 0 / 0
13.05.2017, 17:26
    #39452587
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
Hettесли сравнивать с тем же PHP, на котором я уже "собаку съел"
зачем вам этот железобетонный jsf, если вышеприведенная строка является осмысленными словами, а не просто буквами

Hettнет каши их трех технологий в одной вьюхе (PHP + HTML + JavaScript)
ага, и нет гибкости

HettДелаю интернет магазинчик в процессе изучения EE
jsf, если речь про него, вообще не для интернета, скорее для интранета
...
Рейтинг: 0 / 0
14.05.2017, 13:06
    #39452708
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
rema174если вышеприведенная строка является осмысленными словами, а не просто буквами
+1
т.к. аффтару уже 99% в ветке Java уже говорили, что JSF не нужен\не используется.
ЗЫ
Пожелание автору, все темы про JSF указывать в теме что JSF.
Т.е. название данной темы - не удачное.
...
Рейтинг: 0 / 0
14.05.2017, 19:02
    #39452793
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
Petro123+1
т.к. аффтару уже 99% в ветке Java уже говорили, что JSF не нужен\не используется.
ЗЫ
Пожелание автору, все темы про JSF указывать в теме что JSF.
Т.е. название данной темы - не удачное.

Какая альтернатива есть в EE ?
...
Рейтинг: 0 / 0
14.05.2017, 19:47
    #39452801
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
HettКакая альтернатива есть в EE ?
В Java платят деньги больше чем в PHP как раз потому, что много надо знать.
Например, северную часть и клиентскую отдельно. Т.е. дополнительно JS на REST.
Или только серверную профессионально.
Т.е. если у тебя JSF только на полгода и забыть, тогда нормально.
Изучай дальше.
.......
Причём, через лет пяток, всё может измениться) на 180 градусов.
IMHO
...
Рейтинг: 0 / 0
14.05.2017, 20:00
    #39452808
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
А в спринге как с этим дела? Я думал раньше, что там тот же jsf для клиентской части.
...
Рейтинг: 0 / 0
14.05.2017, 20:04
    #39452810
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
Почему ты решил, что к тому же пхп эмберы/бэкбоны не пикручивают?
...
Рейтинг: 0 / 0
14.05.2017, 20:05
    #39452811
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
HettА в спринге как с этим дела? Я думал раньше, что там тот же jsf для клиентской части.

В спринге есть что-то давно засохшее для UI, но обычно к нему что-то другое рисуется.
Вообще сейчас принято рисовать UI на JS. Т.е. отдельно сервер с API (java+spring/resteasy/...), отдельно UI (там зоопарк и каждый пару лет модный ранее фреймворк предаётся анафеме).
...
Рейтинг: 0 / 0
14.05.2017, 20:44
    #39452816
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
HettПочему ты решил, что к тому же пхп эмберы/бэкбоны не пикручивают?
потому что PHP сам _может_ быть фронтом.
А Java не может.
Преувеличил, но это факт.
Как Excell лучше заточен на формулы чем Word.
...
Рейтинг: 0 / 0
14.05.2017, 20:46
    #39452817
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
HettА в спринге как с этим дела?
Tomin ответил.
...
Рейтинг: 0 / 0
14.05.2017, 20:50
    #39452819
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
Petro123HettПочему ты решил, что к тому же пхп эмберы/бэкбоны не пикручивают?
потому что PHP сам _может_ быть фронтом.

Не может.
...
Рейтинг: 0 / 0
14.05.2017, 21:00
    #39452824
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
http://braun-shopfaces.rhcloud.com
сделано на jsf, но мне не нравится как оно работает
если тоже самое сделать на jsp, то будет работать в два-три раза быстрее и плавнее
...
Рейтинг: 0 / 0
14.05.2017, 23:00
    #39452854
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
HettPetro123потому что PHP сам _может_ быть фронтом.

Не может.
авторPHP (/pi:.eɪtʃ.pi:/ англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools[9] — «Инструменты для создания персональных веб-страниц»)
...
Рейтинг: 0 / 0
15.05.2017, 08:01
    #39452889
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
Давай так, ты приводишь пример "фронта" на ПХП, и я тебе поверю.
...
Рейтинг: 0 / 0
15.05.2017, 09:57
    #39452928
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
Hett,

Под "фронтом", скорее всего, подразумевалась вьюха.

Например, переименовать *.html в *.php
...
Рейтинг: 0 / 0
15.05.2017, 09:59
    #39452931
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
UsmanHett,

Под "фронтом", скорее всего, подразумевалась вьюха.

Например, переименовать *.html в *.php

В таком случае у PHP нет никаких возможностей, которых нет в JAVA.
Все что там можно делать, это писать в поток вывода функциями/операторами, абсолютно так же как и в других ЯП.
...
Рейтинг: 0 / 0
15.05.2017, 10:03
    #39452934
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
HettВ таком случае у PHP нет никаких возможностей, которых нет в JAVA.Многопоточности нет. Она, как бы, есть, но за счет Apache Web Server'а.
HettВсе что там можно делать, это писать в поток вывода функциями/операторами, абсолютно так же как и в других ЯП.PHP можно сравнить с Servlet/JSP
...
Рейтинг: 0 / 0
15.05.2017, 10:07
    #39452938
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jstl forEach: сложный прикол
HettВ таком случае у PHP нет никаких возможностей, которых нет в JAVA.
Вот упоротый.
Назови различия и предназначения двух ЯП.
Сейчас ты написал что они одинаковы.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / jstl forEach: сложный прикол / 25 сообщений из 32, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]