Fala galera. Tenho esse código abaixo bem simples para uma simples calculadora:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="pt-br">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Calculadora JSP</title>
</head>
<body>
<br /><br />
<fieldset> <legend> Calculadora JSP</legend>
<form action="CalculadoraJSP.jsp" method="post">
<br /><br />
Entre com os valores a serem calculados na Calculadora JSP Java
<br /><br />
<label for="valorA">Digite o primeiro Valor:</label>
<br />
<input type="text" id="valorA" name="valorA" size=50 />
<br /><br />
<label for="valorB">Digite o segundo Valor:</label>
<br />
<input type="text" id="valorB" name="valorB" size=50 />
<br />
<br />
<select name="opcao" id="opcao">
<option value="+">(+)</option>
<option value="-">(-)</option>
<option value="*">(*)</option>
<option value="/">(/)</option>
</select>
<input id="btCalcular" type="submit" value="Calcular"/>
<input id="btLimpar" type="reset" value="Limpar"/>
<br />
<br />
</form></fieldset>
<%!//Declarações
private double soma (double valorA, double valorB){
double resultado = 0.0;
return resultado = valorA + valorB;
}
private double subt (double valorA, double valorB){
double resultado = 0.0;
return resultado = valorA - valorB;
}
private double mult (double valorA, double valorB){
double resultado = 0.0;
return resultado = valorA * valorB;
}
private double divi (double valorA, double valorB){
double resultado = 0.0;
return resultado = valorA / valorB;
}
double dvalorA = 0;
double dvalorB = 0;
String opcao;
%>
<%//Scriplet
String svalorA = request.getParameter("valorA");
String svalorB = request.getParameter("valorB");
boolean vValidA = svalorA != null && !svalorA.equals("");
boolean vValidB = svalorB != null && !svalorB.equals("");
if (vValidA && vValidB){
opcao = request.getParameter("opcao");
dvalorA = Double.parseDouble(svalorA);
dvalorB = Double.parseDouble(svalorB);
switch(opcao) {
case "+":
out.println("<br>Resultado: "+soma(dvalorA, dvalorB));
break;
case "-":
out.print("<br>Resultado: "+subt(dvalorA, dvalorB));
break;
case "*":
out.print("<br>Resultado: "+mult(dvalorA, dvalorB));
break;
case "/":
out.print("<br>Resultado: "+divi(dvalorA, dvalorB));
break;
}
}
%>
<br/>
</body>
</html>
E ao compilar no Tomcat 7 (uso java 1.8) ele apresenta esse erro:
Cannot switch on a value of type String for source level below 1.7. Only convertible int values or enum variables are permitted
e esse erro aparece aqui nessa linha:
switch(opcao) {
case "+":
Inicio do switch.
Ja li umas coisas sobre mudar build path de 1.7 para 1.8 mas já esta. O que pode ser?
Desde já obrigado.