JSF и параметры отправки - PullRequest
0 голосов
/ 23 января 2012

Мне нужно отправить значения (входные данные из текстового поля) в качестве параметров метода, и я новичок в JSF.

Скажем, у меня есть форма, связанная с управляемым компонентом

<h:form id="myForm">
   <h:inputText id="atribute1" value="#{myBean.atribute1}"></h:inputText>
   <h:inputText id="atribute2" value="#{myBean.atribute2}"></h:inputText>

   <h:commandButton id="btn" value="SendData" action="#{myBean.save}">
    <p:param name="param1" value="${atribute1}"/>
        <p:param name="param2" value="${atribute2}"/>
   </h:commandButton>
</h:form>

у управляемого компонента есть метод "save" (я сделал его здесь пустым методом, но Eclipse, похоже, хочет, чтобы он возвращал String ??)

public void save() {
FacesContext context = FacesContext.getCurrentInstance();  
Map<String,String> params  = context.getExternalContext().getRequestParameterMap();
String param1= params.get("param1");
String param2= params.get("param2");

System.out.println("param1:"+param1+" & param2:"+param2);
}

Кажется, это ничего не делает, я не печатаю никаких значений, но я не вылетаю. Так кто-нибудь?

1 Ответ

1 голос
/ 23 января 2012

Предполагая, что вы хотите воздействовать на значения в методе сохранения.

Вы уже связали значения для ввода в текстовое поле с компонентом поддержки с помощью value="#{myBean.atribute1}", в котором говорится, что введенное здесь значение будет доступно в свойстве atribute1 управляемого компонента с именем mybean, когда вы отправляете страницу, вы можете получить к ним доступ. в методе сохранения напрямую.

public void save() {
   System.out.println("param1:"+this.attribute1+" & param2:"+this.attribute2);
}

убедитесь, что у вас есть getter / setters для обоих свойств, и удалите дочерние теги из командной кнопки.

...