【发布时间】: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>
【问题讨论】:
-
您确实有一个非常不常见的设置。让服务从托管 bean、servlet 或 rest 前端调用这些。
-
并通过现代教程(NOT tutorialspoint 等)学习 jsf 的基础知识,但从 jsf.zeef.com 开始
标签: web-services jsf servlets