Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Да что за... опять jsf / 20 сообщений из 20, страница 1 из 1
02.09.2015, 11:31
    #39041290
olegeos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
Это страница
Код: html
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.
38.
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>Login</title>
    </h:head>
    <h:body>
        <h:form id="login"  >
            <h:messages  />

         
            <h:panelGrid columns="3">
 
                <h:outputLabel for="username1" value="User Name:" />
                <p:inputText id="username1" value="#{loginController.username}"
                             label="Username"   >
                 <h:messages  />
                </p:inputText>
                 <h:message for="username1" />
             
                 <h:outputLabel for="password" value="Password:" />
                <p:inputText id="password"  value="#{loginController.password}"
                               label="Password" />
                <h:message for="password" />

                <h:outputLabel for="rememberMe" value="Remember Me:" />
                <h:selectBooleanCheckbox id="rememberMe"
                                         value="#{loginController.rememberMe}" />

                <p:commandButton action="#{loginController.test()}"
                                 value="Login"  ajax="false" />

            </h:panelGrid>
        </h:form>
    </h:body>
</html>



это CDI bean:
Код: 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.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
import java.io.Serializable;
import javax.annotation.PostConstruct;


import javax.enterprise.context.SessionScoped;
import javax.faces.context.FacesContext;
import javax.inject.Named;

@Named(value = "loginController")
@SessionScoped
public class LoginController implements Serializable {

    private String username;
    private String password;
    private boolean rememberMe = false;

    public LoginController() {
        this.username ="";
        this.password = "";
    }

    @PostConstruct // начальная инициализация сущности при загрузке Бина
    void init() {
        this.username ="";
        this.password = "";
    }
    public void test() {
        String value = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("login:username1");
        System.out.println("Value: " + value);
        System.out.println(username + " " + password + " " + rememberMe);
     //   return "index";
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public boolean getRememberMe() {
        return rememberMe;
    }

    public void setRememberMe(boolean rememberMe) {
        this.rememberMe = rememberMe;
    }

}



при нажатии на кнопку передает только цифры, текст превращается в 0.
В чем может быть дело???
Думал из-за того что нет инициализации String, добавил и в конструктор и в post эффекта нет:((
primefaces или стандарт не важно, срабатывает одинаково.
Сервер glassfish.
...
Рейтинг: 0 / 0
02.09.2015, 12:22
    #39041349
ivanra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
надо посмотреть под отладчиком значения полей в методе test. Есть подозрение что виновата кодировка консоли (System.out.println)
...
Рейтинг: 0 / 0
02.09.2015, 12:50
    #39041382
olegeos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
ставлю точку на String value = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("login:username1");
ввожу в username = 1234, password = test
и вижу в переменных после нажатия на кнопку username = "1234" , password = "0"
На момент нажатия значения вводимого в форму уже нет.
system.out... закомментировал.
...
Рейтинг: 0 / 0
02.09.2015, 12:51
    #39041384
olegeos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
да в переменной value значения есть
...
Рейтинг: 0 / 0
02.09.2015, 13:18
    #39041420
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
Можно поставить бряку в setUsername и посмотреть по стеку чего происходит.
Не очень понимаю как поля контроллера замаплены на форму, биндинга же нет? value разве не только для чтения?
...
Рейтинг: 0 / 0
02.09.2015, 13:35
    #39041447
ivanra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
вроде выглядит всё правильно.
Возможно, cdi в этом glassfish-е какой-то недоделанный.
Предлагаю поменять cdi аннотации
Код: java
1.
2.
@Named(value = "loginController")
@SessionScoped


на jsf-ские
Код: java
1.
2.
@ManagedBean(name="loginController")
@javax.faces.bean.SessionScoped
...
Рейтинг: 0 / 0
02.09.2015, 13:45
    #39041471
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
1) Что будет если в инпут password ввести цифры а не текст?
2) Добавьте валидатор на это поле, укажите required=true и minlength=2. Что получится?
3) В порядке бреда, переименуйте поле password во что-то другое, соотвественно измените и в бине. Что получится?
...
Рейтинг: 0 / 0
02.09.2015, 13:51
    #39041485
z3r9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
Код: java
1.
2.
3.
4.
5.
@PostConstruct // начальная инициализация сущности при загрузке Бина
    void init() {
        this.username ="";
        this.password = "";
    }



Убери это.
...
Рейтинг: 0 / 0
02.09.2015, 13:53
    #39041487
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
Да, и чтобы окончательно убедится что проблема на сервере а не на клиенте, открой Firebug и скинь что уходит в POST на сервер
...
Рейтинг: 0 / 0
02.09.2015, 16:00
    #39041670
olegeos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
@postcons... убрал, да и ставил его от безысходности :)
Менял на @ManagedBean(name="loginController")
@javax.faces.bean.SessionScoped

все тоже самое.
Цифры в пароле проходят.
А никакие настройки glassfish не могли повлиять?
...
Рейтинг: 0 / 0
02.09.2015, 16:07
    #39041679
olegeos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
Post запрос:

URL запроса: http://localhost:8080/Stat/login.xhtml
Метод запроса: POST
Код состояния: HTTP/1.1 200 OK
Заголовки запроса 16:00:56.000
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:33.0) Gecko/20100101 Firefox/33.0
Referer: http://localhost:8080/Stat/login.xhtml
Host: localhost:8080
Connection: keep-alive
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Отправленная кука
treeForm_tree-hi: treeForm:tree:configurations:server-config:httpService:httpListeners:http-listener-2
JSESSIONID: dee273e2b744607342690d43b1ce
JSESSIONID: 64067e81a620adb7ea0e763d3a99
Отправленные данные формы
login:password: 656
login:j_idt8: jgghj
login:j_idt13:

login: login
javax.faces.ViewState: 8172005303651433085:1419625600670599316
Заголовки ответа Δ29мс
X-Powered-By: Servlet/3.1 JSP/2.3 (GlassFish Server Open Source Edition 4.1 Java/Oracle Corporation/1.7)
Server: GlassFish Server Open Source Edition 4.1
Date: Wed, 02 Sep 2015 12:00:56 GMT
Content-Type: text/html;charset=UTF-8
Content-Length: 2225
Тело ответа Δ0мс
...
Рейтинг: 0 / 0
02.09.2015, 16:30
    #39041704
olegeos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
добавил валидатор на поле username:

Код: xml
1.
2.
3.
4.
5.
  <h:inputText id="username1" value="#{loginController.usern1}"
                             required="true"    >
                    <f:validateLength minimum="3" maximum="15"  for="username1"/>
                </h:inputText>
                 <h:messages/>


вылетает ошибка в меседж:
login:username1: Validation Error: Length is less than allowable minimum of '3'

Складывается впечатление, что не проходит одну из фаз...
Если ставлю 3 цифры, то все нормально проходит.
Идеи?!
...
Рейтинг: 0 / 0
02.09.2015, 16:55
    #39041744
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
ну вообще очень странно все конечно. Попробуйте запустить на томкате, чтобы сузить список проблем.
...
Рейтинг: 0 / 0
02.09.2015, 18:19
    #39041823
olegeos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
Пробовал на отдельной машине, на только что скачанном сервере, все работает нормально. Попробую заново снести и поставить глассфишь.
...
Рейтинг: 0 / 0
02.09.2015, 22:03
    #39041941
z3r9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
olegeos, у меня бывало вносишь изменения но они не вносятся. Проект заново пересоздашь и все работает. Возможно из-за нехватки места на диске такое было.

Вообще попробуй wildfly сервер заместо glassfish. На нем проект быстрее разворачивается да и у меня на нем глюков таких не было.
...
Рейтинг: 0 / 0
03.09.2015, 10:52
    #39042154
xifr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
olegeosPost запрос:

login:password: 656
login:j_idt8: jgghj
login:j_idt13:

login: login


Судя по посту у вас цифры из браузера приходят "656"

Скопипастил ваш пример на glassfish 4.1 все работает нормально.
...
Рейтинг: 0 / 0
03.09.2015, 12:53
    #39042398
olegeos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
Это пример был, где были и цифры и символы.
Сейчас экспериментирую, у меня тоже если создаю отдельно все работает.
Но есть приложение в котором возникает проблема и пытаюсь разобраться в чем дело, есть подозрение что eclipselink виноват(пока не на 100%)
Создаю новое приложение и постепенно переношу в него исходники, страницы, библиотеки. В какой-то момент пример выше перестает работать.
...
Рейтинг: 0 / 0
03.09.2015, 15:02
    #39042617
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
валидаторы и конвертеры кастомные смотри
...
Рейтинг: 0 / 0
04.09.2015, 14:06
    #39043441
bochkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
глассфиш гавно
...
Рейтинг: 0 / 0
04.09.2015, 14:10
    #39043448
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Да что за... опять jsf
bochkovглассфиш гавно
Не могу выразить словами всю глубину своего согласия с вашей предельно точной оценкой.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Да что за... опять jsf / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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