如何转换此方法以获取捕获操作参数
@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;
}
}
}
答案 0 :(得分:0)
使用
@QueryParam("operacion") String operacion
如果您想将operationc=sum
映射到方法的参数。
看起来您希望根据表单输入operacion
的值来路由到不同的方法。这是不可能的。根据您的HTML operacion
的{{1}},所选@QueryParam
的值始终为@FormParam
或method
。它永远不会成为URL路径的一部分,它永远不会作为form
注释的一部分提供。