restful重定向到基于单选按钮选择的路径

时间:2018-04-29 03:39:27

标签: java rest web-services restful-architecture restful-url

如何转换此方法以获取捕获操作参数

@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.TEXT_PLAIN)
public String postForm(@FormParam("operacion") List<String> operacion) {
return operacion.toString();
}

尝试使用条件operation.equals(“sum”)创建一个if但是类型的非法错误开始

以后能够将它与根据按钮无线电选项选择的操作类型进行比较

<input type="radio" name="operacion" value="suma" checked="true" />
        Suma<br>
<input type="radio" name="operacion" value="resta" />
        Resta<br>
<input type="radio" name="operacion" value="multiplicacion" />
        Multiplicacion<br>
<input type="radio" name="operacion" value="division" />
        Division<br>
<input type="radio" name="operacion" value="modulo" />
        Modulo<br>

当我按下计算时,这是网址: http://localhost:8080/RESTFulCalculator/webresources/calculadora?num1=1&num2=2&operacion=suma, 根据所选的单选按钮被重定向到restful方法?

 @Stateless
 @Path("/calculadora")
 public class Calculadora {

 @GET 
 @Path("/calculadora/suma")
 public String Suma(@QueryParam("num1") double num1,@QueryParam("num2") double num2)    {
 return Double.toString($Suma(num1,num2));
 }
    double $Suma(double num1,double num2) {
    double resultado;
    resultado = num1 + num2;
    return resultado;

 }

 @GET 
 @Path("/calculadora/resta")
 public String Resta(@QueryParam("num1") double num1,@QueryParam("num2") double num2)    {
 return Double.toString($Resta(num1,num2));
 }              
    double $Resta(@QueryParam("num1") double num1,@QueryParam("num2") double num2) {
    double resultado;
    resultado = num1 - num2;
    return resultado;
 }

@GET    
@Path("/calculadora/multiplicacion")
  public String Multiplicacion(@QueryParam("num1") double num1,@QueryParam("num2") double num2)    {
return Double.toString($Multiplicacion(num1,num2));
}          
   double $Multiplicacion(double num1,double num2) {
    double resultado;
    resultado = num1 * num2;
    return resultado;
 }  

 @GET 
 @Path("/calculadora/division")
 public String Division(@QueryParam("num1") double num1,@QueryParam("num2") double num2)    {
 return Double.toString($Division(num1,num2));
 }
  double $Division(double num1,double num2) {
    double resultado;
    resultado = num1 / num2;
    return resultado;
 } 

 @GET 
 @Path("/calculadora/Modulo")
 public String Modulo(@QueryParam("num1") double num1,@QueryParam("num2") double num2)    {
 return Double.toString($Modulo(num1,num2));
 }
 double $Modulo(@QueryParam("num1") double num1,@QueryParam("num2") double num2) {
    double resultado;
    resultado = num1 % num2;
    return resultado;
 }  
 }  

}

1 个答案:

答案 0 :(得分:0)

使用

@QueryParam("operacion") String operacion

如果您想将operationc=sum映射到方法的参数。

看起来您希望根据表单输入operacion的值来路由到不同的方法。这是不可能的。根据您的HTML operacion的{​​{1}},所选@QueryParam的值始终为@FormParammethod。它永远不会成为URL路径的一部分,它永远不会作为form注释的一部分提供。