【问题标题】:restful redirect to path based on radio button choiceRESTful 重定向到基于单选按钮选择的路径
【发布时间】:2018-04-29 03:39:27
【问题描述】:

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

@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;
 }  
 }  

}

【问题讨论】:

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


    【解决方案1】:

    使用一个

    @QueryParam("operacion") String operacion
    

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

    您似乎想要路由到不同的方法,并传递了表单输入 operacion 的值。这不可能。所选operacion 的值将始终为@QueryParam@FormParam,基于您的HTML formmethod。它永远不会成为 URL 路径的一部分,也永远不会作为 @Path 注释的一部分提供。

    【讨论】:

    • 已经在一个方法中实现它。 public String Suma(@QueryParam("num1") double num1,@QueryParam("num2") double num2, @QueryParam("operacion") String opacion) { if(operacion.equals("suma")){ return Double. toString($Suma(num1,num2)); } 返回空值; } 但它对我不起作用,网址是:localhost:8080/RESTFulCalculator/webresources/calculadora/…
    猜你喜欢
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多