out.write没有'双重'值。还有另一种方法吗? 我用问题标记了这一行。 我期待着您的继续支持。
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/ServletDemo")
public class ServletDemo extends HttpServlet {
private double getFahrenheit(double celsius){
double fahrenheit = celsius * 1.8 + 32;
return fahrenheit;
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.write("!DOCTYPE html>\n");
out.write("<html>\n");
out.write("<body>\n");
out.write("<h1>JSP Beispiel</h1>\n");
out.write("Text aus dem Scriplet!");
out.write("<br/>\n");
out.write("30° Celsius entsprechen\n");
out.write(getFahrenheit(30.0)); // ----------> Problem at this line
out.write("° Fahrenheit!\n");
out.write("</body>\n");
out.write("</html>");
out.close();
}
}
答案 0 :(得分:1)
PrintWriter.write()
可以选择String
,char[]
或int
;但不是double
。通过执行以下操作将您的值转换为String
out.write(String.valueOf(getFahrenheit(30.0)));
或只是
out.write(getFahrenheit(30.0) + "");
答案 1 :(得分:0)
PrintWriter#write
打印一个字符或字符串文字。您可以将double转换为字符串并将其写入或使用PrintWriter#print
方法来打印double。
使用String.valueOf()
将double值转换为字符串文字。
摘录:
out.write(String.valueOf(getFahrenheit(30.0)));
或
out.print(getFahrenheit(30.0));
答案 2 :(得分:0)
使用PrintWriter,你不能写&#34;双倍但根据 https://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html 你可以打印出来
out.print(getFahrenheit(30.0));
就是这样,也是可能的
out.write(""+getFahrenheit(30.0));
做类似的事情,如果在某些时候你有一些东西只支持字符串类型