2015-08-03 7 views
0

У меня есть небольшая проблема. Я хочу получить значение из моего ввода, я нахожусь, но он не обновляется должным образом. значение String всегда равно null.Прямоугольники Получить входное значение

XHTML:

<!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://java.sun.com/jsf/html" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:ui="http://java.sun.com/jsf/facelets" 
xmlns:p="http://primefaces.org/ui"> 

<h:head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<meta http-equiv="Pragma" content="No-cache" /> 
<meta http-equiv="Cache-Control" 
    content="no-store,No-cache,must-revalidate,post-check=0,pre-check=0,max-age=0" /> 
<meta http-equiv="Expires" content="-1" /> 
<link type="text/css" rel="stylesheet" 
    href="#{request.contextPath}/resources/css/styles.css" /> 
<link rel="shortcut icon" href="#{resource['Icon.png']}" 
    type="image/x-icon" /> 
<title>#{msg['title.index']}</title> 
</h:head> 
<h:body style="background:#f5f5f5;"> 
<h:form> 
    <p:commandButton value="#{bean.button}" 
     style="margin-left:10px;margin-top:10px;" /> 

    <p:inputTextarea value="#{bean.text}" autoResize="true" 
     placeholder="#{msg['label.placeholder']}" rows="3" cols="90" 
     style="margin-top:250px;margin-left:5px;"> 
    </p:inputTextarea> 
</h:form> 
</h:body> 
</html> 

Bean:

import javax.faces.bean.ManagedBean; 
import javax.faces.bean.SessionScoped; 

@ManagedBean(name = "bean") 
@SessionScoped 
public class Controller { 

private String text; 
private String button = "Click"; 

public String getText() { 
    System.out.println(text); 
    return text; 
} 

public void setText(String text) { 
    this.text = text; 
} 

public String getButton() { 
    return button; 
} 

public void setButton(String button) { 
    this.button = button; 
} 
} 

Оно не кажется, что он не может найти свой боб, потому что значение я дал кнопку правильно отображается в браузере. Но вход не работает. Я уже работал с jsf, и у меня никогда не было проблем с передачей значений через bean-компонент. Другой проект меня использует тот же метод, что и здесь, и он работает. Но в этом случае мои входы не идут к компоненту. Помоги пожалуйста.

+0

С помощью отладчика вызывается 'setText'? – Smutje

+0

Не на клавиатуре. Но он должен автоматически замечать, когда нажата клавиша, и обновлять getter и setter. Это не так. –

+2

Зачем ему что-либо делать при нажатии клавиши, у вас нет слушателя AJAX? – Smutje

ответ

0

Вы должны представить свою форму для компонента, чтобы принять значение. Иначе форма никогда не отправляется.

Итак, добавьте действие к вашей командной кнопке, которая будет вызвана при нажатии кнопки.

<p:commandButton value="#{bean.button}" 
     style="margin-left:10px;margin-top:10px;" action="#{bean.submit}" /> 

Написать в вашей боб

public void submit(){} 

ваш метод может содержать все, что вы хотите.

Есть хорошие jsf tutorial here те, которые я использовал, чтобы начать (я еще не закончил).

+0

Да, это кажется правильным, НО в моем проекте, прежде чем я запрограммировал ОДИН ПУТЬ, и моя проблема не является фиксацией строки, а обновлением метода getter и setter в bean-компоненте. В моем другом проекте я опрокидывал что-то в поле ввода, и моя консоль напрямую обновляла мое опрокидывание. Но теперь это не так. Он даже не использует методы getter или setter. –

+0

BTW в моей командеButton - это actionListener, который должен получить входное значение и что-то сделать с ним. Но кнопка doenst даже получает входное значение, потому что оно всегда равно нулю. Я также попробовал метод привязки, который всегда работал для меня, но в этом случае то же самое. Входное значение всегда равно нулю. Я думаю, что есть некоторые свойства, которые неправильны в моем затмении. –

+0

Я думаю, что вы неправильно помните или не опубликовали весь код. В вашей кнопке действия нет ActionListener. Если вы хотите делать обновления без обновления страницы, взгляните на f: ajax. – Ced

Смежные вопросы