【问题标题】:Servlet call does not work from jsf pageServlet 调用在 jsf 页面中不起作用
【发布时间】:2018-05-29 00:05:52
【问题描述】:

我正在从一个 jsf 页面调用一个使用 web 服务的 servlet,当我单击发送时,没有任何操作,它不调用servelt。

这是 Servlet Parqueo

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
   Map<String,String> requestParams = ec.getRequestParameterMap();
   String Nombre = requestParams.get("nombre");
   String Tipo = requestParams.get("tipo");
   String Placa = requestParams.get("tipo");
   String Fecha= requestParams.get("fecha");
   String Hora_in = requestParams.get("horain");
   String Hora_out= requestParams.get("horaout");
   if(Hora_in !=null && !Hora_in.isEmpty() && Hora_out !=null && !Hora_out.isEmpty()){
   jaxws.Parking_Service service;
   jaxws.Parking port;
   try{
   service= new jaxws.Parking_Service();
   port=service.getParkingPort();
   String parqueo = port.reserva(Hora_in, Hora_out);
   request.setAttribute("result",parqueo);
   response.getWriter().print( Nombre + "</p>");
   response.getWriter().print( Tipo + "</p>");
   response.getWriter().print( Placa + "</p>");
   response.getWriter().print( Fecha + "</p>");
   request.getRequestDispatcher("reserva.xhtml").forward(request, response);
   }

我收到索引的数据,我保存它们并使用 web 服务,然后我将数据和结果发送到页面 resultado.xhtml

这是我称之为 serlvet 的页面中的 index.xhtml

  <h:body>
    <f:view>
     <h:form>
            <h:outputText value="Reserva de Parqueadero "  />
            <br/>                        
        <h:panelGrid columns="2">
    <p:outputLabel value="Nombre:" for="nombre" />
    <p:inputText id="nombre" title="Nombre" required="true" requiredMessage="The Id field is required."/>
    <p:outputLabel value="Tipo:" for="tipo" />
    <p:inputText id="tipo" title="Tipo" required="true" requiredMessage="The Id field is required."/>      
    <p:outputLabel value="Placa:" for="placa" />
    <p:inputText id="placa" title="Placa" required="true" requiredMessage="The Id field is required."/>       
    <p:outputLabel value="Hora Ingreso:" for="horain" />
    <p:inputText id="horain" title="Hora Ingreso" required="true" requiredMessage="The Id field is required."/>       
    <p:outputLabel value="Hora Salida:" for="horaout" />
    <p:inputText id="horaout" title="Hora Salida" required="true" requiredMessage="The Id field is required."/>        
    <p:outputLabel value="Fecha:" for="fecha" />
    <p:calendar id="fecha" value="#{calendar.date1}" showOn="button" navigator="true"></p:calendar>   
         </h:panelGrid>
         <br/>
        <h:commandButton value="Enviar" action="/parqueo.do"/> 
    </h:form>   
    </f:view>      
 </h:body>

这是结果.xhtml

<h:body>
    <f:view>
    <h:outputText value="Nombre" />
    <h:outputText value="#{session.getAttribute(name)}"/>
    <h:outputText value="Tipo" />
    <h:outputText value="#{session.getAttribute(tipo)}"/>
    <h:outputText value="Placa" />
    <h:outputText value="#{session.getAttribute(placa)}"/>
    <h:outputText value="Fecha" />
    <h:outputText value="#{session.getAttribute(fecha)}"/>
    <f:convertDateTime pattern="MM/dd/yyyy" />
    <h:outputText value="Resultado" />
    <h:outputText value="${result}"/>
  </f:view>
 </h:body>

在此页面上,它应该显示输入的数据和 web 服务返回的值,即 parqueo

这是 web.xml

 <servlet>
    <servlet-name>Parqueo</servlet-name>
    <servlet-class>controlador.Parqueo</servlet-class>
</servlet>
 <servlet-mapping>
    <servlet-name>Parqueo</servlet-name>
    <url-pattern>/parqueo.do</url-pattern>
</servlet-mapping>

【问题讨论】:

标签: web-services jsf servlets


【解决方案1】:

为什么要使用 servlet?如果您使用的是 JSF,则使用 ManagedBean 将其链接到一些 UI 组件(Faces Servlet 将为您映射请求/发布)。

【讨论】:

    猜你喜欢
    • 2012-07-28
    • 2016-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    相关资源
    最近更新 更多