добавить введенные пользователем данные в базу данных с помощью jsf - PullRequest
0 голосов
/ 05 мая 2011

Поскольку я новичок в JSF Framework, хотел знать, как добавить введенные пользователем данные в базу данных. Более ясно, что я использую jsf с jsp, мой jsp содержит некоторые поля ввода и кнопку отправки. Как мне захватить все введенные пользователем данные и отправить их в качестве входных параметров для кнопки, так как мой бэкэнд принимает все это как ввод параметры и обновляет таблицу с новой записью.

Пожалуйста, посмотрите на мой код и позвольте мне знать мою ошибку

Registration.jsp

<body>
 <f:view>
  <h:form>
           <h:panelGrid columns="2" rules="all" width="100%" style="background:#03547C;color:#FDD017">
                <h:column>
                    <h:outputText value="Stu No : "></h:outputText>
                    <h:inputText value="#{RegBean.stuNo}"/>
                </h:column>
                <h:column>
                    <h:outputText value="Stu Name : "></h:outputText>
                    <h:inputText value="#{RegBean.stuName}"/>
                </h:column>
                 <h:column>
                      <h:outputText value="Standard : "></h:outputText>
                      <h:inputText value="#{RegBean.standard}" />
                 </h:column>
                 <h:column>
                       <h:outputText value="School : "></h:outputText>
                       <h:inputText value="#{RegBean.school}" />
                 </h:column>
            </h:panelGrid>
            <h:panelGrid columns="2" rules="all" width="100%" style="background:#03547C;color:#FDD017">
                <h:column>
                    <h:form>
                        <h:commandButton id="submitBtn" value="Submit" action="#{RegBean.submitDetails}">
                            <f:param name="sNo" value="#{RegBean.stuNo}" />
                            <f:param name="sName" value="#{RegBean.stuName}" />
                            <f:param name="std" value="#{RegBean.standard}" />
                            <f:param name="schl" value="#{RegBean.school}" />
                        </h:commandButton>
                    </h:form>
                </h:column>
            </h:panelGrid>
        </h:form>
    </f:view>
</body>

Боб регистрации

public class VendorRegBean {
private String stuNo;
private String stuName;
private String standard;
private String school;

  // getters and setters

    public void submitDetails() {
    Map requestMap = context.getExternalContext().getRequestParameterMap();
      String stNo = (String) requestMap.get("sNo");
      String stName = (String) requestMap.get("sName");
      String stndrd = (String) requestMap.get("std");
      String scl = (String) requestMap.get("schl");
    vReg.stuRegistration(stNo ,stName ,stndrd ,scl );        
}

}

1 Ответ

1 голос
/ 05 мая 2011

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

Используйте аннотации для вашего компонентаобъявите это как управляемый боб.Пример получения и установки приведен для stuNo member:

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

    @ManagedBean
    @SessionScoped
    public class RegBean {
      private String stuNo;
      ...


      private String getStuNo() {
        return stuNo;
      }

      private String setStuNo(String stuNo) {
        this.stuNod = stuNo;
      }
    }

В представлении вы должны ссылаться на управляемый компонент с первой строчной буквой, например:

<h:inputText value="#{regBean.stuNo}"/>

YourКомандная кнопка не нуждается в <f:param>, просто используйте:

<h:commandButton id="submitBtn" value="Submit" action="#{regBean.submitDetails}"/>

Тогда все параметры автоматически доступны в вашем методе submitDetails, и вам не нужно получать их из карты параметров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...